This already happens in a fuzzy way now right: most everyone understands that their boss makes more money. We don't know exactly how much of course, but its "understood". If we transitioned to a place where people who are doing amazing work also make more money, I think there'd be no problem at all.
This effect can be even more distorted when people start irrationally factoring in years of experience. If salaries were public, you'd definitely start to see people who have put in their 10 years gripe about newcomers earning way more than them (often justifiably).
It also penalizes good negotiators, which might be a socially positive thing but I certainly wouldn't like it.
No, it doesn't penalize good negotiators. It fails to reward them when being a "good negotiator" isn't relevant to the business metrics for the position they work in, but the absence of an unearned reward isn't punishment.
And this isn't merely socially positive, but its a positive for the business, because it increases the incentive for good negotiators to seek positions where that is relevant to job duties, since it avoids rewarding that skill where it is not relevant. As such, it increases the alignment between the incentives provided by compensation with the business interests of the employing firm.
It probably penalizes snazzy dressers and charismatic people too, which snazzy dressers and charismatic people probably don't like.
But at some point you have to ask, what is a company optimizing for? It has limited resources, X dollars to spread amongst Y people. If you optimize a system to give a lion share of that to good negotiators, its not just socially worse, its economically worse for your business. You might find yourself with a hiring system that ends up with good negotiators instead of good engineers (if an engineer that is socially awkward receives a better offer from somewhere else, he may choose that offer instead of using it to "play" you to get his salary up).