This is the key to the entire conversation.
It cuts both ways.
It means companies can set what many would call a ridiculous salary expectation (like R20k per month for a senior .net dev with 10 years experience) and likely someone will accept it out of desperation.
But companies also know that.
And they have shareholders and pen pushers in suits running numbers constantly.
Less running costs means more profit means happier shareholders.
Nobody gets into business to NOT make a profit (heck I want to make more myself).
I've been in hiring discussions where the free market has led to things like "dude just got divorced and wants to move away from the area so he will accept a lower offer" or "guy got retrenched so is desperate... offer him X". I don't like these things.
I also don't like that someone choosing to stay in a cheaper area means "we can pay them less because their cost of living is less" - this is a thing.
Currently a lot of consulting companies are making bank on devs because they hire them at market-ish related rates as contractors and farm their work out to UK places with the value prop being "you can pay a lot less for good resources if you get them from ZA". But they push the limits because they want to maximise their win. So a senior dev gets paid the same as a ZA senior dev, but as a contractor and now they have to account for their own leave, sick leave and and and etc.
Free market is great... but it can easily become exploitation.
I vote for at least a salary range based on the job spec, that way if someone is looking they can decide whether they are willing to accept something in the range. It's kak to get to the END of a 5 or 7 step interview process and get an offer that's not market related or what it should be.
Another thing I'd like to see changed is the "gief last payslip"... currently the Fair Pay Bill is in discussion which would make it that companies aren't allowed to do this. I've seen many people who get stuck being underpaid if somewhere in their journey they ended up underpaid... because when they move the company gives them a 10% increase even if they are actually 30% under market value.
There is one MD I'm still grateful for to this day. I went to an interview, and one of the last steps was a stop in his office. He talked to me and asked me what my current salary was... wrote it on the white board, turned to the person who had brought me there (I think he was head of Dev dept) and said "give this guy a proper offer... this is way too low". They gave me like a 40% increase or something.