Whatever you do, keep the $custom_theme global variable working the same way it does today. This way, contrib modules can make use of it to display per-user, per-section, or per-path themes.