I feel like this entire discussion can be summed up in four sentences: "Feel like you're not making enough? Find another company that will pay you more. No one will pay you more? Keep adding skills until they do."
Everything else is just window dressing for the negotiating table.
I feel like that's more true at a small-scale company than a large company with thousands of employees. Maybe the large company has already found those "hard-to-find skills".
Big companies tend not to have as many places where they need one person to wear many hats; so their hard-to-finds will tend to be finding deep experts, but there's probably not a lot of positions that really need that.
Even if market rate price for developers in India was same as SF, to maintain its "output/$ per employee", the salary may differ.
For instance, a company whose main operations are happening in PST, engineers whose main hours are offset 13h30min are less valuable to the company than those with 0h0min offset.
Sending a PR for review or reviewing a PR from someone with more than 8h time zone difference usually means you have to wait a full day of turnaround time.
Now within a same time zone but different country (or even states in the US), the differences diminish but there are still local labor laws and taxes that affect what the ratio of "what the employee provides" vs "what it costs the employer"
So at the moment, people living in SF and [some remote town in the middle of california with fiber internet] should be paid the same, but, people in TX should not. (This only applies to 100% WFH companies whose majority of workforce is all in California)
I work in Texas, with pretty low COL. The people who work in DC, NY, or SF all get paid more than I do. Should I get paid the same as them?
Our company also has people in India (some are outsourced, but we have many full time associates). Should I get paid the same as them?
What, then, is the value of my work? If I ask my employeer to disregard location based pay, how much do I get paid?