I do agree the idea of a salary cap is weird, because in all other business ventures someone who earn what they are worth.
That being said, I can understand the idea of keeping the market more competitive. It would be interesting if they did something to keep superstars on certain markets, for example, you could have 1 player on your roster who'se salary doesn't count toward the salary cap, that way you could offer them whatever you feel they are worth, and if they wanted to go to a team with a superstar who is already on the non-counted salary, they'd really have to make a sacrifice. That way you could also keep the cap as it is and there would be a lot more cash free'ed up from the 'superstars' wage that could go to the other players.
This idea can probably be picked apart as I only just thought of it, but I could see potential in keeping superstars in lesser markets and go back to the days of a stud player being drafted and staying as the face of the franchise for most of their career.