Actually my main concern was that the recovery manager is now ending up being configured in different places instead of a single location. To me, the existing ArjunaRecoveryManagerService appeared to be right place to be configuring it.

But looking at this again, it seems that you are adding a XTS specific module to the recovery manager and that addition has to happen only when XTS is enabled. So I think it's fine to do it here.

As for the dependency and then the use of RecoveryManager.manager() - I haven't looked at the implementation of RecoveryManager.manager() but if it returns the same instance as the one configured in ArjunaRecoveryManagerService, then it should be fine.