Pidgin and Adium do not support (transferrable) chat history and do not show messages when I'm offline, which is a huge usability hit. Especially when people talking on the other side expect that the messages are visible to you even if you're not immediately online.
This times a million. GChat (now "hangouts"), though their XMPP interface, attempts to send new messages only to the "active" client, which means that if you try to use Pidgin or Adium (I used both myself for a number of years; they're fantastic applications) or any other XMPP client, you'll lose messages in Adium/Pidgin for a few minutes whenever you move the mouse cursor in gmail or peek at messages in the hangouts phone app. You'll never see those messages in Adium/Pidgin, and there's no way (afaik) to tell that you're not getting messages, either; it's like they don't exist.
Google, however, sends all the messages to its own clients; you never miss messages there. And so, to me, this smells like a clever (and intentional) strategy to cripple third-party clients.
They miss notifications and occasionally messages on their own clients too, but I guess it isn't as consistently repeatable.
I did see a reverse-engineered Hangouts client at some point; does anyone know if this works well enough?