Frankly the whole original point of H-1B was to bring in awesome people and encourage them to stay if they showed they brought enough value.
It should, as you said, be attached to the person with a fixed term (10 years?), then at the end of the term there should be a "job interview"-like process where it is determined if this person has brought enough value. If they succeed hand them a Green Card.
Employers should still help them get the initial H-1B to show they have a job and that their credentials are credible. But after that the employee alone should hold the H-1B and be allowed to jump ship if they're unfairly treated or poorly compensated (after all the point of H-1B was never to get CHEAP labour, it was to get GOOD labour).
The fixed term also gives them more personal security, without the threat of being kicked out with little notice.