Decrentralizing the web's software isn't good enough. We need to decentralize the hardware. Right now, connections to the web look like a tree, where a whole bunch of connections get funneled through an ISP. That ISP has the power. The power to throttle, the power to block, the power to record. And that ISP can be pressured by other powers. We need to decentralize so that instead of looking like a hierarchical tree,…
So, in urban areas of the US at least, it really is just a matter of software.
Of course, a large scale wireless mesh network would probably be somewhat lacking in terms of performance, but we also still have wired connections to ISPs and could start setting up wired connections to each other. Peering with your neighbor (wirelessly or not) to share idle bandwidth shouldn't make things any slower than they already are...
The problem of course is that everyone would have to use a compatible mesh protocol. There are several options for a mesh network protocol now, but I don't know of any that scales well while remaining decentralized. Even if someone did come up with a good protocol now, considering how long the switch to IPv6 has been taking, I wouldn't expect any switch away from IPv4 to happen very soon.