Does drupal_add_css not load duplicate filenames by design?
Looking at the drupal_add_css() function, it seems this behaviour is by design.

For any CSS that you add using the function without using 'inline' as an argument, the array of files is keyed by the first argument (string) that you pass in. So if you were to run:

drupal_add_css('file.css');


And another module has also called drupal_add_css() with the same file name, the original will be overwritten.

As Marius Illie mentions in a comment above, the best way to avoid this is to prefix any CSS files you add with your module name.