Because saying "you can keep your job if you uproot your life" isn't a fair choice.
Surely an employer and employee are free to choose the employment terms and when the terms are deemed unacceptable to either, they can part ways?
If you're a top notch Amazon engineer, for example, and you don't want to uproot your life it would be fairly easy to find another job that is more suitable, don't you think? All employment relationships have tradeoffs.
Concur that the employer has to behave within the confines of the contract. If not, that's a contract violation and they should pay dearly. Is it the case that they are violating contractual terms? Or are they operating within the flexibility offered by the contract signed by both parties?