The best implementation of themes I've seen works like this:
Each user has a CSS link / URL in their personal profiles... When C9 renders the page it just places whatever the user has chosen in the rel="stylesheet" link... If nothing is selected it uses the default. That way the themes are ever-expandable.
So for example 9ers would be able to design their own themes and share them around... People just change the location in their profiles to the *.css file and get a new look and feel.
As I said I've seen this implemented top to bottom and it works great... Users have a lot of fun finding different themes that others have created.