There's another big issue, what if your friends don't want to exist on that front end? Either events/posts are private, or they're on the public ledger and distributed. There's no way to keep interactions private.
In the end, if we think of having these messages sent to clients directly and stored locally, have the clients being able to subscribe to groups, have the clients maintain the friend list, and people being able to post to sets within that list. We have this already. Its called email.