You're right that it's a little more complicated. A family friend is here from India on some kind of visa where she is able to switch employers, but she has to leave if a new one won't sponsor her or something. But she pays (or paid) thousands of dollars to some agency in India to fix her up with a job/jobs.
What really gets me in her case is that she has a child who has lived here for over a decade and can't get in-state tuition without special treatment despite being legal.