Everyone wants to take XMPP, but no one wants to give XMPP. The old Microsoft model of embrace and extend. What could stop this sort of behavior?
Could standards be constructed in a way the punishes greedy 'compliance' while still providing enough benefit to keep implementations from simply ignoring standards all together?
IMHO this should be a case for regulation (although you'll probably disagree, with that username :-). Basically, if you run a service with more than, say, a million users, you should be required (or strongly incentivized) to provide federation to your competitors.
So as a user you'd be able to connect from GTalk/Hangouts to Skype or Facebook chat. Going further, as a Facebook account owner you could follow people on twitter, and post to friends' walls if they use diaspora.
I guess this would break many "Silo" business models (after all, that's the purpose of such a regulation). But it would be good for competition, it would give smaller competitors a chance. And it would give the large players a strong incentive to be great "account providers". I wouldn't use Facebook (G+, Google Talk, ...) just because all my friends are there, but maybe because of their great privacy policy :-D or because they offer the best UI or some innovative features.
No, it's the job of the users to use open standards. I try to use XMPP still and encourage people to use with me. They're probably using Pidgin or a similar multi-protocol chat software anyway SINCE EVERY CHAT PROTOCOL IS A WALLED GARDEN.
Could standards be constructed in a way the punishes greedy 'compliance' while still providing enough benefit to keep implementations from simply ignoring standards all together?