Negotiations still take place, they just happen in a different format. For example if the Technical Lead is having trouble hiring due to low salaries for the positions, he would make the case to management that they need to raise the salary range for those positions. And the added benefit to this format (in a transparent organization) current employees would also get a raise which would probably help with attrition.
I think for very senior roles, individual negotiations still might make sense, as the value prop of those hires is highly variable and can have big impacts on the organization. But for roles like Software Eng I, and Software Eng II, etc... in the long run it is better for morale, attrition, and equality to use defined salary ranges. And you can still use bonuses to adjust compensation based on performance.
In these cases, though, we're relying on the employer to institute those salaries. However, the employer usually does not have an incentive to pay more if they can get the same thing for cheaper.
The employer isn't magically immune to market forces simply because they move to a transparent salary system. If they are significantly under-paying their employees, and they are not making up the difference via other benefits (shorter working hours, bonuses, etc...) then they are going to run into a lot of trouble hiring and holding onto employees.
And just because a company has defined salary ranges doesn't mean employees have no voice in the matter. If they feel those salaries are not keeping up with market rates, they can make that known to management, or they can go find greener pastures.
In this discussion you're assuming the "employer" as a separate entity from the "employees". This was an enormously hard dichotomy for us to overcome, because it required me and my cofounder to let go of control over the salary structure and hand that over to the company as a whole. That requires a huge amount of trust that "the employees" care about the company as much as we do, really want it to be a success, are capable of informing themselves to make good decisions on behalf of the company.
It is a very worthwhile path, but it certainly is not easy for the founders (and is probably impossible in a large traditional, top down, public company where "the owners" are a faceless group of shareholders who definitely want to believe they are in control - even though they definitely are not).
At this point, we (my cofounder and I) have pretty much zero control over how much people are paid in the company. We provide advice to people making those decisions but we are not the decision-makers. And the conclusion of that experiment is that people actually seem to care far more about getting the arbitrary salary formula right than we do, so I believe it was very much the right choice to let go of this lever and let the company design its own salary structure.
Thanks to this situation (however difficult it was to get there), the problem you outline is not there because there is no "employer" entity separate from the employees that could collude or have incentives different from the employees.
I think for very senior roles, individual negotiations still might make sense, as the value prop of those hires is highly variable and can have big impacts on the organization. But for roles like Software Eng I, and Software Eng II, etc... in the long run it is better for morale, attrition, and equality to use defined salary ranges. And you can still use bonuses to adjust compensation based on performance.