the protocol is certainly verbose, but it isnt very complicated. the verboseness comes with a lot of extra functionality
* Send out some xml spam to "create a stream"
* Receive a stream reply, with feature sets.
* Send out starttls
* Get a reply back
* Switch to secure mode
* Send out some xml spam to "create a stream" inside the first stream
* Receive reply back, check supported auth modes
* Send out auth
* Receive reply back
* Send out some *MORE* xml spam to "create a stream" inside the first 2
* Receive reply back, with features
* Bind
* Create session
THEN you can do something useful. Most of the verboseness is idiotic XML:eg <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>
Those xmlns's are everywhere, and are stupidly verbose.
You can write IRC commands by hand into telnet. But typing in xml is just not feasable since it's so stupidly verbose.
irc works great as a chat protocol, xmpp is more viable as a generic messaging protocol