I remember George Steinbrenner noting, and he made a good point, that he spent the maximum of what he was able to on player payroll, and adding revenue sharing only meant that [the Marlins owner] just got to pocket that much more money.
The only way I see to fix it is a financial audit of every team with a heavy revenue sharing distributed among every team, and then a mandated player payroll range based on that. I've heard the argument that a team with a lot of young players may not need to spend all that much, but there's always room to add a FA, even on a one-year deal to meet any payroll minimums. Maybe the owners get something like keeping 100% of their concessions money to keep encouraging strong attendance.
I recall all this was a big issue toward the end of Selig's tenure. And his "solution" was to add playoff teams to say "see, now small-market teams have a better chance." Heck, last year owners wanted 45% of teams to make the playoffs. But ultimately doesn't MLB want this, that the Dodgers and the Yankees of the baseball world have the best financial chance at making the WS and getting that sweet viewership money? A Brewers/Royals WS would have twelve viewers.