A fundamental limitation of the peer to peer setup for messaging is the lack of a reliable way to send a message while your contact is offline. If your answer to that is to have intermediaries that are always available and can store and forward, you run into issues of needing a lot of these intermediaries in a mobile centric(low power, intermittently online) world.