Depends on what you want to do. I admit I didn't know what iMessage was capable of, but the basic features (text, images) are also possible with XMPP. The more complicated ones is a mixture of "the ISPs don't allow that" (I'm thinking accepting inbound connections), "the user needs 3rd party support" (I'm thinking about needing a proxy server for transfers, which most people don't have, but Apple can conveniently proxy transfer through its own servers) and "just do it".
The problem with XMPP (or any IM protocol for that matter) is that if nobody uses it, there will be little technical progress, which means few people will use it, etc...
The problem with XMPP (or any IM protocol for that matter) is that if nobody uses it, there will be little technical progress, which means few people will use it, etc...