We have to distinguish between federated and peer 2 peer systems. Federated systems share a lot of problems of centralized approaches, because most people need a third party to handle their data. I don’t have my own Mastodon instance running, or my own Diaspora instance, so I rely on others (I do host my own e-mail like Moxie, but like him, most other people don’t, and if I send something to Gmail, I can just as well use my Gmail account, and be sure it won’t be stuck in some weird anti-spam measurement). Setting up your own server is not for the normal user.
So if you think about a user-centric product perspective, only peer2peer can bring a solution. The data is yours, and the protocol takes care about that you actually can set up your own instance without jumping through hoops.
The question whether you are going to stuck with a protocol or if development can move forward fast is that of how you organize your development: have many competing systems using the same protocol (frozen in time as a result), or have one system that is developed together by the community? If you think about everybody is stuck with HTTP/1.1, because writing a web server as abandonware is easy, we are not stuck with HTML, because writing a browser as abandonware is harder. People abandon their own approaches, and go forward to Chromium-based, with Firefox as active competitor. The situation is much better on that side.