True, but do you think it's easier to deploy an extension that already exists and just lacks implementations, or to create a whole new protocol from scratch ?
If you look at other successful protocols, you'll also see that some features we rely on were bolted-on as extensions to protocols that were defined before, such as DNS, IMAP, HTTP... Not that it's an excuse to do the same, but it's expected.
> it's truly decentralized, without the need for a server for the actual communication
I don't think that's not something you actually want.
- How do you send a message to someone who's offline ? You don't, you have to wait for you and your contact to be online at the same time.
- How do you traverse NATs ? You have to craft all that messy code, and it's not even guaranteed that it works... you're going to need a "known anchor" for everyone to connect, just like what we see with WebRTC. If you're aiming for a one single protocol, there's no way around that. By the way XMPP can do signaling over XMPP and actual communications over direct, P2P links (such as SOCKS5: http://xmpp.org/extensions/xep-0260.html)
The sad state today is that many clients still haven't implemented Jingle, but at least there's something to start from.