Sorry but I think I disagree.
Quite on the contrary, I think that the problem with mining centralization can be effectively considered a flaw of the protocol and it has to be resolved somehow.
The greed is something inherent the human being, the man, the miner, the pool operator. Bitcoin must be superior to that.
We cannot just hope that these actors will change their minds and won't be greedy anymore, because it will not happen.
Sometime there is someone with good intentions, like the recent GHash.IO statement, but at all times it could appear a player greedier than the previous one. Also, we should consider that even if greed was totally absent, the problem would still be here because anyone with enought resources could be able to destroy bitcoin for whatever reason.
No, I really think that it should be the protocol itself able to auto-defends and to defeat any threat.
The protocol is open source though, which makes any attempt to completely thwart the effects of human greed simply a delaying deterrent at best. Also, any theoretical principle will always play out differently when applied in the real world, which means that even a perfect protocol will eventually find itself abused and exploited. So the mining process is adequately functional as it is now, in my opinion.
If you want to keep the blockchain as decentralized as possible independent of people's behaviours, then you would need to rewrite a large part of, if not the whole, protocol and make it closed source. That's obviously out of the question. Ergo, it's the miners themselves who have to change.