Employment is a social contract, looking for a compromise between two positions:
* Employers want to essentially acquire a good (productive employee) for the best quality / price ratio. If a trained monkey could do the job for peanuts, employers would be happy.
* Employees, and the society made up of employees, want stability, employment rights etc. as salary work is a backbone of societal stability.
Employers will happily pay the lowest amount of salary that will convince someone to work for them - COL being a key consideration. Employees will negotiate on the basis of the value they bring, but in principle, there is no moral obligation for employers to pay a wage that's fair, based on the value of the employee work, perhaps above ~subsistence levels.
How it works out, we'll see. Perhaps societies agree that strong-arming employers to pay equal salaries, regardless of location, will work - that's how unions, weekends and paid holidays came to be in the developed world (sorry Americans). But neither is a fundamental human right, and rather a societal contract, negotiated between labour takes and makers.
For a different take, should it also be unfair for someone qualified, living in a lower cost-of-living location, to offer their employment to the same company for less? This seems like normal salary negotiation to me.