Thanks for flogging this, it makes me think about it and go back and look at my resources. I am not an expert in this area so I may be mistaken, but here goes.
First, CSS files can include a reference to include another CSS file, off-hand I don't remember the exact syntax for this. A web page can also reference multiple CSS files; but the cascading part will mean that the last set attribute will be what is displayed in either case. This means you could have 2-column and three-column CSS layouts and each of these could include refrences to another CSS file with layouts for common header and footer.
Themes, as a concept can include CSS, skins and images. I believe that all skin files in a theme are applied, but that CSS files have to be specified to be used, I think and may be wrong. Images used by CSS files are relative to the CSS file. So, to me, and I could be wrong, you could place your CSS outside of the default theme structure and as long as the images were referred to relative to the CSS file AND you weren't using skins, then you could do pretty much anything you want regarding CSS file location placement.
While CSS file includes, either images or other CSS files, need to be relative to the calling CSS file, master pages can include or call files from anywhere, typically relative to the root of the web site(~/). So a master page could call ~/app_theme/mytheme/commonheaderfooter.css and a second call to ~/admin/mytwocolumn.css.
This is all theoretical to me at this point. I can blue sky with the best of them
in theory it should work. But as some wise person once said, "In theory there is no difference between practice and theory, but in practice there is."