It actually started out this way, and got worse.
The incoming rookies were limited in what they could make because the veterans and many owners resented their leverage in negotiations. So some of the most high profile players in the league start out underpaid and stay that way for years. I say under paid because in a free market incoming top rookies would get top salaries just from their potential.
Then owners and players negotiated a maximum salary that could be gotten. This guaranteed that the superstars of the league were underpaid based on their actual performance and/or marketing value to their team and the league. This provision benefitted owners who wouldn't be in position to negotiate against each other over a high profile player, and have that get out of hand. It also benefitted the majority of players in the middle because:
The owners and players negotiated a 50/50 revenue split that the owners must spend on player salaries so if you limit the rookies and the superstars that leads to what we have today
DRAMATIC OVERPAYMENT OF AVERAGE PLAYERS!!!!!
and that completes this UnAmerican system.
Players who haven't excelled but instead have survived are now cashing in big time.
Players who weren't good enough to play meaningful playoff minutes are making over $15 million dollars a year.
Good players are now the highest paid in the league.
This gives them no incentive to get better. It overshadows the superstars, and makes no cognitive sense.
The highest paid players should be Lebron, Steph, etc.
Their not because of an accident of timing where new revenue has come in while many top players are locked in their contracts.
This should never be allowed to happen.
The best thing is to take the limits off rookies and superstars and have a free market within the cap system.
But if not, the top 20 players should an escalator clause thst keeps them in the top 20 salaries.
Excellence should be rewarded at all times.