The problem is not the protocol. But the user network. And the server network. And the ad network. They need to be made into protocols too.
Imagine git. Now imagine github. Now imagine gitlab. Github owns the entire social networking on its platform. It is not distributed at all. So does gitlab.
Github et. al added the connectivity and social aspects layered on top of what is fundamentally a version control tool.
Torrenting or cryptocurrencies are better examples, where fundamentally they are social in nature and in the case of torrenting it's ridiculously easy to jump from provider to provider.
but it's resource intensive.