It should be possible to create a class loader for (each) service implementation that can reload the service when its underlying class changes.
Once could imagine this as a special proxy; possibly this would require a particular service scope ("reloadable").
Periodically, a check could occur to let the proxies see if the underlying service implementation class file has changed and, if so, create a new class loader to load that specific class, much as tapestry-core does with component.
This would involve moving some number of services from tapestry-core to tapestry-ioc, and there are implications related to some public services.
I think it would be too much to support reloadable modules, just service implementations. Therefore, services that are constructed via a builder method would not be reloadable.