I'd actually be most in favor of a 1 SP=1 vote system wherein 100 million SP of stake would have to spread it across 30 witness votes, not get to vote 100 million on all 30, but limiting witness votes to say 5, accomplishes much the same thing and may be a simpler and more elegant solution to code. It does not prevent a massive stake from voting in witnesses, but it makes it extremely difficult for them to control consensus.
100 million SP with 5 witness votes could divvy it up to the point of optimizing 25 million SP of support on 20 witnesses, but that level still leaves room for actual community elected witnesses to remain in the top 20 and essentially give Steem classic seats at the table and keep any malicious hard forks from achieving consensus.
Of course 1 SP = 1 vote is the most extreme form of decentralizing the chain and honestly makes the most sense. In that kind of scenario, 100 million SP spread across 20 witnesses is equal to only 5 million SP of support per witness. Huge stake can control a number of witness seats, but certainly not all of them as is currently the case. SP being multiplied by a factor of 30 for witness voting is the flaw that needs addressed. If Tron wants to put their thumb on the scale and buy seats at the witness table, I think we could actually allow that provided they can't buy consensus, which the current system is allowing.