It makes sense to me.
I don't know if you've written code to switch themes before or not, but this is basically what you need to do:
You can call dispose() on the current theme and then instantiate your new theme. That will make all new components will use the new theme when they initialize.
However, any existing components that were already initialized before the new theme was created will not automatically switch to the new theme. There's no real easy way to do that, unfortunately. One option might be to remove/dispose all components in your app and then recreate them from scratch.
Another option is to loop through all of the display objects on stage (recursively) and call resetStyleProvider() on anything that is a FeathersControl. This will reset their style providers to the default one from the new theme. This should work in most cases, but you may run into trouble if you ever pass in a custom style provider. For instance, some older apps might still be using AddOnFunctionStyleProvider (in a modern Feathers app, AddOnFunctionStyleProvider is usually not necessary), and that would not work well with resetStyleProvider(). If you don't use any custom style providers, then this should work very well.