From a variance standpoint, Bitcoin's design makes the largest pools the most attractive. Which is bad for the security of the currency, and unfortunately an unavoidable result of how Bitcoin works. You can trust that people will "do the right thing" and move to smaller pools, or you can trust the pool operators not to abuse their power, but the whole point of Bitcoin was to avoid having to place that kind of trust in individuals.
Well, the individual miner is just in for profit and has nothing to gain from the pool's ability to disrupt the functionality of the network, so we could safely assume that s/he has an incentive to take away this ability from the pool. So, assuming that we have a mining system that does this with few enough disadvantages, almost everyone with significant stakes will switch. If this is possible, I wouldn't call the current problem an unavoidable result of how Bitcoin works.
Here is one approach:
https://forum.bitcoin.org/index.php?topic=9137Another could be creating a more distributed mining environment. For instance, we could embed an optional standardized pool functionality within mining software, that could be turned on at the user's will. Miners could constantly switch nodes that they get work. In this case though, a trust system or a sophisticated distributed accounting system would be needed.
My comment about it being an unavoidable part of Bitcoin was the finding of increasingly rare (from the standpoint of any individual miner), but increasingly valuable blocks being a key part of Bitcoin's security. Those make it valuable for individual miners to join pools to make the rewards of mining more stable.
But as you point out, switching pools is an easy and obvious thing for miners to do. And it doesn't take THAT big of a pool to even out the rewards of mining. I'm not sure being part of deepbit is better from that perspective than being part of any number of other, smaller pools.