Now I discover SSViewer::set_theme() is deprecated for yml config settings. I cant do a config inst() change like this or it will be global. whats the workaround - or alternatively PLEASE KEEP the method.
UPDATE: I see that it is already using Config::inst()->update('SSViewer', 'theme', $theme) in that method. This does not seem good.
This is what I am doing with my own static $db Page variable "Theme" in my Page.php Page_Controller init method
Im guessing now that this is BAD!! Or is it? It does work. I can flit between different pages and they render and cache perfectly.
and rename it MyPageTypeClassName.ss. Modify it as you wish. Job done. Of course that can point to a whole new load of css and images, as you require. Don't forget to ?flush=all to see the new template
I realise that does not quite answer as you asked but it fulfills the same requirement and it's dead easy.