When in the same transaction / thread you open two sessions coming from different repositories, the second one open is actually pointing to the first one which is obviously incorrect.
The culprit is the Geronimo pool, which has a mechanism to return the same low-level connection when used in the same transaction.
So obviously we have to use one pool per repository, which means one NuxeoConnectionManager per repository. This has an impact on the nuxeo.xml configuration as well.
One concrete effect of this bug is that the content template creating default-domain is not executed on secondary repositories (because when it looks it already finds one, but it's in reality using a session from the default repository).