One solution for this already exists: P2Pool. From the wiki page, "P2Pool is a decentralized Bitcoin mining pool that works by creating a peer-to-peer network of miner nodes." The key thing is that since it's p2p, there's no owner of the network who can use it to perform a 51% attack.
P2Pool is not perfect, but it works and it shows that decentralized pools mining are possible. With some improvement, it (or something like it) could be a replacement for all centralized mining pools.
You obviously haven't clicked on the link. P2Pool requires too many resources (a full-node). Whereas most of current mining, ran by trusted third-party pools, can even be done off of a raspberry pi, which requires much less resources.
It's likely that if bitcoin hits some serious roadblocks and the protocol needs to change, an altcoin will have solved the problem and most people will switch.
For instance, the proof-of-stake coins (peercoin, novacoin) are far more resilient to these problems.
I'm curious if they can agree on, develop, and deploy a protocol change far enough in advance to prevent a mass exodus to another altcoin.
Doubtful that everyone will switch to some yet-to-be-determined altcoin.
Bitcoin is open source. Nothing is preventing its flaws from being patched. That's all altcoins are anyway; Bitcoin with a patch to a perceived problem with the protocol.
With a market cap of $21bn, that kind of capitalization doesn't disappear overnight, which would need to happen to counteract a massive flaw that arises from centralized mining.
I think Proof of Stake sounds promising, but I am personally struggling to come to grips with the concepts. I spent a little while reading through Peercoin's whitepaper and plenty of time trawling the Nxtcoin forums for a decent explanation of the core concepts but my brain just hasn't managed to make it all click yet.
This is a problem we're trying to solve with MemoryCoin - decentralized mining by using commodity hardware and distribution. It's already possible to pool mine direct from the GUI and we're currently looking at integrating P2Pool with the client for increased decentralization.
http://memorycoin.org/manifesto/
P2Pool is not perfect, but it works and it shows that decentralized pools mining are possible. With some improvement, it (or something like it) could be a replacement for all centralized mining pools.
https://en.bitcoin.it/wiki/P2Pool