Yeah, there's http://xmpp.org/extensions/xep-0286.html which discusses some ways to mitigate the power issue, but, from what I understand, we never got much feedback from mobile developers about it. In particular there are several extensions which remove the need for a lot of network traffic (capability hashes, roster versioning, stream management to immediately resume a session that got disconnected, etc). The fun part is that 1) a lot of mobile client developers haven't implemented those and 2) most require server support, and Google never added support for them.
As for a binary serialization, XMPP traffic does compress very well already (TLS/zlib/lzw), but we have started the process on standardizing the use of EXI (https://en.wikipedia.org/wiki/Efficient_XML_Interchange).