Yes, I think that is the best approach. Recently, I was playing with the different color schemes of the battlehorse template. It was very nice but a lot of manual work to make each change effective. I was thinking of using a real CSS selector/switcher see e.g.
http://www.alistapart.com/stories/alternate/
Finally, I used the fact that the page is regenerated from scratch at each update and load the required css (I built one for each color scheme). The color change became effective from the configuration page: just push 'SAVE' !
For your question, my comment is that
you are on the right track, keep it going!