They would work but they are more difficult to build. Unfortunately noone has an incentive to put the amount of resources towards public infrastructure that Facebook & co do, therefore it stays centralized.
They're not just more difficult to build, there are only two options in an infrastructure like those. You can build a system where everything depends on one server (where if your internet isn't good enough everything breaks) or you use a Bitcoin-esque system to make sure that every computer on the network gets the messages. Which causes noise and inefficency.