To my knowledge, the main barriers are managing the payroll: how do you deal with each countries' laws and obligations for each of your remote employees ?
The traditional way to do that at scale is to go through a local proxy company that abstracts the complexity and is the legal entity responsible for the workers in that country. Except you have to pay that middle-men, maintain an ongoing relationship, and if for instance a tenth of your engineers are managed by them, their bargaining power will be pretty high and the cost will rise.
If as a company you deal with each individual employee instead, you have to also directly manage all the legal aspects. Hiring freelance workers only can partially alleviate that, but this comes with its own can of worm, and the complexity stays the same in case of conflict (imagine getting sued by the worker in their own country)