What's really frustrating is how much hate is directed against such a small slice of the mining pie. Only about 300 Gigahash is hoppers out of 13 terahash total mining. It's less than 3% of the miners! And all these pool ops are wasting coding time trying to hurt us by obfuscating stats. For some I believe this is just a smokescreen for their coding time spent on block stealing algorithms.
You guys are the only ones even trying to keep them honest by predicted/figuring out which pool found which block. If that problem can be solved, then the pool op block stealing will stop.
I don't see how. When they do steal blocks they submit them under their private wallet, not through their pool.
New wallet address for each block, if block is found under say 750k shares fix it so that the next block is a magical 750k shares larger. Steal every fourth block that matches this, good luck being found out.

In the longer run you might have a small "total pool bad luck" ratio of whatever these 750k/4 shares are worth against the current difficulty. It would be better to just declare a few shares invalid which in reality aren't to increase your pool's stale rate by a bit less than 1% - and log the shares under a mining account of yours instead. There is no need to steal shole blocks if YOU are the one telling your miners if you're even going to pay them for their work.
Edit: we really should get back to topic though, there are so many ways how pool operators can steal from their users that I don't even want to get into detail... The ONLY way to prevent this is to have "social" mining software that announces found blocks + the pool you mined them in on IRC or similar, and maximum transparency from pools including access to all getwork solutions (so you couls check that your solutions get added to your account only).