I have thought about this as well to an extent. http://community.igniterealtime.org/message/172176#172176 shows how to allow multiple as you suggest it is quite easy and it seems that you've alerady read this.
From what I can tell of that link to Tigase it's pretty much the same thing. Althoug with the internal clustering that Tigase provides it seems connecting many to many is a lot easier (if not possible; compared to Openfire and maybe not possible at all)
I've not looked inside the specific OF code that handles components yet, though I'd start at ConnectionManagerImpl.java where the component listeners are instantiated and started. I'm not Java guru but it seems to bind a new ComponentConnectionHandler to the SocketAcceptor (which is a Mina interface that I haven't looked at. From what I can tell it's a threaded server socket acceptor)
It seems that the component ends up as an entry in the Local routing table, though I'm not sure how the allow multiple logic actually works.... that's for another day for me.
Thanks James, there are some helpful points there to check out. We have been still just talking about re-using some of the S2S code to initiate an outgoing connection to an external component. I will keep you posted if this is something you will need in the future.
I re read your question and I realise I didn't really come close to addressing it.
For server to server, there is no way to explicitly make Openfire connect to another server. It has to be able to do a DNS SRV lookup for the domain of a non local JID. THen it initiates S2S over port 5279 or something similar (not got docs on hand)
You'd have to modify the code of the component listener I'd think to get that type of functionality. I'd think you'd want to keep the shared secret key or some other type to auth going as components have a lot of free reign insde the server.
This is indeed something I am looking at. I liked OF because it's extreemly well documented and I needed to hack it internally as well as make external components, the lack of out of the box clustering will only be a problem later on down the track but it will be a problem. I'll bookmark this discussion and add anything I find