The reasons given lined up with my own thoughts. It's very hard to build a stable, reliable and self repairing distributed network. Communicating status and presence info is the largest challenge that distributed networks is the hardest and most difficult challenge you have, whereas with a centralized server, and 'register' its fairly easy to push updates out for all of this. Also, the server can be set to maintain status for the subscriber, even if they are not really connected.