One problem I saw was that the hashnames are still too long and random to be practical for many use cases like building instant messaging on top of it. What you kind of need on top of it is some kind of possibility to find other people/hosts. One possibility is kind of a social network way: You show your "friends" who your "friends" are. Hashnames that are friends to many of your friends are most likely friends and could be suggested to you. Another possibility is local node detection. Other devices you own are most likely on the same network.
Another problem is that sometimes instances aren't online but still should be able to receive messages. You either need to persuade some nodes somehow to store messages or you need central servers.