If they are in files, caching is a problem if you ever update those CSS themes. Let’s say you are using EE for running a business site, and you want to force the CP to have a different look to match the business’ look. You delete all of the CSS theme files except one, the default. Modify the default css file as you see fit. If someone views the CP, the CSS file is updated after that first viewing, and they are using a browser which happens to cache the CSS file (IE 5 for Mac), then they will not see the changes.
And I just realized that there your question about masking the CP location is actually relevant in a certain situation, which also contributed to why we wrote the CSS into the page instead of a separate file. In the /system/utilities/ directory you will find a file called admin.php. You can put this file outside of the system directory (say at the base of your site) along with a path.php file, and then you can have the CP available outside the system directory. Thus, certain members can use the CP, perhaps only for posting articles, and yet they will not have them know the location of the system directory.
I am fairly sure there is at least one more reason why we put the CSS into the page instead of a file, but I would have to think about it for a bit.