I'm not sure the NBA's salary structure problem is realistically fixable. The problem is that it's not a free market. You'd either need to create salary slots where teams designate their best player gets X, their second best player gets X-1 and so on, or only allow one-year deals so every dollar you spend on player 1 is a dollar you can't give to player 2 through 15.
Mike