This is true - inability to switch jobs while on H1B is not right but it is difficult to make that a reality based on the spirit of the program.
If the program is there for "we can't find qualified people in the US to do X" and then you find one such person to sponsor for H1B - the direction in which this is going is that Company is looking for an Employee. If you as an employee than say "imma pack up my bags and go elsewhere" now this is changing direction, now Employee is looking for Company and that is really not what H1B is for.
There 1,000,000% should be like H1E program that works in this direction but I am sure whatever someone tries to come up with there will be hundreds of people here on HN and elsewhere "crying" about "we should first look in the US before we hire immigrants.'