How hard would it be to link to the calendar in such a way as to allow themes to show for everyone based on a date? The concept is that under calendar (ideally the same spot where you add events) you are given a select box that lets you choose which theme will show on that day. or no change if that is the choice. So that way you could set it for at christmas during the week (or however many days out the calendar has been set) the theme changes for everyone to a christmas theme, then after the event everyone returns to their previous choice.
In additon to this let the admin choose whic themes are not user selectable (not just whether or not member can change theme).