I'm back.
At the moment I have it set up as one css file which makes it easier for testing. Given the option I would use two, one structural and one cosmetic which would make it easy for people who just want to change color schemes, fonts etc and insulate the uninitiated from making a mess of things.
However, I see no reason why the structural stylesheet has to be common to all themes. I would prefer each theme to consist of two css files with links to both inserted by php. The stylesheets would be called something like oxygen_main and oxygen_theme. If somebody wants to alter something structural then they can do it directly in the _main stylesheet rather than using the cascade to override it. It also makes it easier to distribute complete skins and/or make an online skin generator. If you use a common stylesheet and rely on the cascade then making wholesale changes to structure will involve overriding large parts of the common stylesheet. The end result could be a cosmetic stylesheet which is as big and complicated as the common stylesheet.
Of course you could make things really interesting by making both the structural and cosmetic stylesheets selectable by the user. This means you could have say four structural stylesheets and 6 colour schemes each of which work with all of the structural stylesheets. This gives you a total of 24 possible themes from 10 files. A bit more complicated I know but the real advantage is it would make it easy to produce specialist/accessability skins e.g. large fonts, fixed width etc.
Now all I have to do is try to remember what I was doing before I left; three weeks in the sun has fried my brain.