I've already explained how CryptoCat differs from iMessage and Dropbox, as well as the pros and cons of each approach
By my read of
https://github.com/cryptocat/cryptocat/wiki/Design-and-Functionality cryptocat suffers the same potential for man-in-the-middle attacks on its secure chat system as Apple. The MitM attack vector is simply the XMPP server instead of Apple's iMessage server. But, just like with Apple, a compromised XMPP server would be able to forge public certificates for other participants in the chat and capture all messages going through.
Other than the per-chat generation of private/public key pairs, I don't see any architectural difference between this and what we know about Apple's iMessage system.
Unless your argument is that you would be the one operating the XMPP server, which then is kind of silly. Then you're just arguing against using a third-party messaging system in general; instead of proving that you don't need to trust the operator of the messaging system you have replaced the operator with someone (yourself) that you (and hopefully your chat mates as well) trust implicitly.
Maybe there's more there that isn't laid out in the (rather sparse) Wiki, but I don't see any of the hallmarks of accepted MitM-proof system design there.
If you want a secure chat system based on any kind of encryption, the certificates need to either be exchanged in an independent and verified-secure (or at least, unlikely to be compromised at the same time as the active communications channel) system or they need to be intrinsically verifiable (by a third party, which also requires secure uncompromised root certificate exchange independent of the active comm channel).
As was said earlier, to get "true" security (really, all security is relative) you need to accept a very healthy dose of inconvenience. Yes, that tradeoff does tend to improve over time (although the actual level of security provided by a particular security measure also tends to decrease, such that many would claim that the security:inconvenience curve is roughly stable over time). So, the user of a chat system needs to determine roughly how much privacy they really need, and compare that the the necessary inconvenience, and choose the level of each that makes the most sense for them.