I think the jar is a good idea. I have hocked it up with our Jenkins CI process.
As you mentioned, since the themes are cached, we have no option but to restart KeyCloak. This might go well in a non-clustered production environment.
I don't think wildfly modules are reloadable. But wildfly allows you to deploy a jar just like a war. Wondering why you guys didn't take that route and went with the module route.
Also if there is anyway to clear the theme cache when we deploy a new change without having to restart KeyCloak would be great. I don't want to disable the cache settings in keycloak-server.json as cache is important for performance but just want a way to reload it when we deploy new changes/new themes via the jar file.