Any attempt to 'fix' this problem, would most likely require changes to all mining software, why not just make mining more decentralized in general?
For example, allow anyone to submit proofs of work to Bitcoind that are some fraction of the network difficulty and receive payment for them if they're valid. This would also encourage the proliferation of full nodes since anyone could solo mine again. Then, the next coinbase transaction could be split among, say, the top 100 proofs of work.
Eligius already does their miner payouts like this.
If you want to fix an issue with mining, fix the selfish mining issue first as it's a much larger and more dangerous potential issue.
I don't believe it was ever clearly established whether Eligius suffered a block withholding attack or was just the victim of a miner with (what was, at the time) a large amount of faulty hardware, however, from the Bitcointalk threads at the time I believe it was assumed to be the latter.
--Adam