Yup. You can write xmpp parsers with thin wrappers around a push based sax parser. It is not hard, people are just not familiar with sax.
Sure, sax parsers have their limitations, but there are sax parsers that avoid the callback trouble by doing a tree-style fold over the XML structure instead of the linear fold over the XML stream. Not for the server, since it is not super efficient, but writing a client like that is easy peasy.