at my company, raises have more to do with the financial situation of the company than subjective reviews (although we do have these, they just don't factor into compensation that much). if the company is doing well, everyone gets a nice raise. everyone gets the same percentage bonus every year which is calculated based on the entire company's performance. maybe this makes us unattractive for very competitive people, but it leads to a very cooperative environment. senior devs don't really have anything to lose by spending a few hours helping newer people, so they just do it.
I think this theory may be true in some fields like hedge funds or heavy sales performance based businesses.
In software, I am not sure high productivity people care about this issue, as long as their compensation is high enough.
That circles back to the original problem of how do you identify the high productivity people to give them high compensation. It works when the person spending the money is close enough to evaluate employee performance. But when it's some middle manager spending Zuckerburg's money you run into the agent/principle problem. The managers will do what's best for them (raises for everyone!) and not the enterprise.
So high productivity people who don't want everyone else to benefit are a bit of an oxymoron.
(* or at least most others)
If you can find a dev who can do for your company what LeBron can do for the Cavs/Heat/Lakers, great!
The reality is that you should be shooting for Shane Battier.
Obviously metrics vs just manager instinct/observation will benefit and harm different people in different ways.
A combination would be better. But life isn't really fair or objective, end of the day I'd rather work with someone I like and can socialise with and know working with them is stress free (which means my work is better) and can be trusted to just do their thing even if their performance is lower than someone who's a pain to work with but maybe puts in more hours.
Making software is a combination of engineering + artistry, it's not flipping X burgers an hour, objective performance isn't important it's the contribution of the whole individual.
[0] : I did have a manager judge me on this before, all it meant was I'd stay up all night, go into work, sit there like a zombie doing close to nothing, go home then sleep. Doesn't matter if I was barely doing anything, by their bum on seat metric I was doing great.
Every year, and once a year, all the managers in the company submit bids to the employees that they want to work under them. Employees then select their favorite bid, and that becomes their new manager. Employees are free to accept/reject bids based on any criteria: Salary/PTO/On-call requirements, etc.
In theory, you have a list of things to check for each category of performance. If you tick enough boxes, you get a certain category. In reality, it seems managers stack rank, and then apply the required curve to the stack rank. If everybody on your team does their job as expected (or better), too bad, X% need to be flagged as poor performers as declared by the performance curve.
Which is more fair? Note that objective measurement of the wrong thing will reward people for stuff other than quality, and probably stuff beyond their control.