Several people have written adapters that connect to different servers depending on info in the Subject or ConnectionRequestInfo. This is specifically recommended against by the spec, but doesn't seem to cause any problems.
I'd recommend doing this only if the server to connect to can be determined from only the users identity. Then you can write a login module that adds extra destination info to the Subject and your app won't have to worry about where it is connecting to. If you have to determine the destination in app code I'd just deploy lots of datasources/connectionfactories and keep the adapter simple. Figuring out the destination info isn't going to be any easier than figuring out a jndi name to look up. I would not try to make one connection/mc connect to multiple server instances.