You're missing hours of headaches working through over-engineered ridiculously overly complicated horrible XML protocol. Stick with IRC ;)
<field var='muc#roominfo_occupants' label='Number of occupants'>
<value>3</value>
</field>
Sorry, but you can't really look at that protocol and say it's not ugly and verbose beyond reason. The number of occupants in a room is surely used enough to deserve an encoding of less than 75 characters to specify a number.Identity and S2S federation. IRC is fine for a closed system, but XMPP's global namespace has a lot of potential for integration between different real-time systems.
Remember when Prodigy users couldn't mail Compuserve users, or AOL users couldn't mail Usenet users? That's where IM is right now, held back by the fact that it consists of nothing but a series of closed gardens.
XMPP makes it work like email. Your JID looks like an email (and can also end up being an email identifier), and the servers know how to route amongst one another.
If you can't see how this might be a nice feature, it is only because you've become too used to the status quo to see.
Identity comes from the fact that your JID is now generally accessible from anywhere in the world, and thus your JID can be used as your identity, just as your email address can, and, like I said, they can even be exactly the same.
Further, since XMPP was designed to work this way from day one, it means that all other XMPP services work across servers this way. Presence subscriptions are correctly handled, one server can host conferences and people from other servers can participate, etc.