Bringing a foreign employee over is incredibly expensive. The reason companies do it isn't to get a grateful slave that will do anything to hold his job and rise ahead. They do it because a shortage of skilled workers locally, and incredible competition from other companies.
Not to mention all the hassle and uncertainty of interviewing someone, and then not knowing for months or even years if they can come over and start working.
As someone that works for a company that hires a LOT internationally, trust me, we'd much rather hire locally. But our needs are greater than can be found in one place, so we have to broaden our reach.