You don't get paid for the work you do, you get paid for how hard it is to replace you, right? Is this not supposed to be the case or is it illegal or immoral (by someone's standards?)?
You have Bob and Jane both C programmers with equal education and experience but Jane's work is many times superior to Bob, so getting someone of the same caliber as Jane will cost more because they can negotiate for more right?
Also, do the same people who get outrages about this also insist that salary negotiation should be a thing of the past? That means a position will pay a fixed amount no matter who is filling it? Meaning the larger a team the more it costs so get what few people you have to work harde and longer right because they all cost the price of the highest performer?
I am not trying to make a point I just want to know what the ideal situation is supposed to be.
I don't have much gripe about pay, I would be happy to get paid the same amount as people with kids and mortgages who can't take any less than a high amount but I certainly don't want to hear other people's salary or tell mine. But it would suck if all the few high paying roles are always taken because of the demand and the majority are much lower paying.