Hughs.. I was wonding..
Looking at your switch statement.. I noticed you jump to different CSS files, depending on what your $SESSION['css'] is set too..
What I would recommend is having a base CSS for your styling .. but leave font colours, background colours and what not embeded at the top in your pages of your site.. you can have font colours and such driven by depending on what your $SESSION['css'] is set to.. same with graphics.. if entire graphic elements change depending on the theme selected.. I would have those graphics driven by php.. and if they need to be tied into css (for example .. a backgound image that tiles), see if you can embed this aspect in the your page..and again, being driven by the $SESSION['css'] variable.
I think it might not be a big issue if your .css files are small.. but if they get big, keep in mind that browsers do cache those files in.. so if the user start jumping around all themes, you'll get 4 .css files cached..(again, this issue might be negligable).
For me , the bigger reason for what I mention in my post is the need to modify style sheets... so if you make changes on one, all must be changed. But if you can cleverly separate some of the css aspects that will remain set in stone into your pages (and have those .css elements driven by the $SESSION['css'] variable, you can use simply one style sheet.
Cheers,
NRG