Simple solution: Only agree to relocate if your contract guarantees you employment for at least X months... Or a termination payment of Y dollars if employment lasts less than X months.
Anyone who moves across the world for an employer without getting a term like that in writing simply is naive - and we shouldn't offer them sympathy after the fact. It's like someone having their house flooded when they deliberately decided not to get flood insurance... Like, you knew the risk you were taking on...
If enough engineers started demanding it, it wouldn't be fantasy land...
I have negotiated changes to my employment contract at every job I've ever worked, big and small companies, so it is very possible. Usually just crossing out a clause or editing a number is pretty straightforward and doesn't require approvals too high up the management chain.
Anyone who moves across the world for an employer without getting a term like that in writing simply is naive - and we shouldn't offer them sympathy after the fact. It's like someone having their house flooded when they deliberately decided not to get flood insurance... Like, you knew the risk you were taking on...