I think they'll gladly keep the holders of these visas as long as they're desperate. It's not about length of time, it's about keeping them tied to a single employer, working like a rented mule, afraid to speak up. These visas make people good, docile employees because if they aren't they get removed from the country. It's kind of wild that they are so casually accepted.
I think if you make it a moral violation to give people nice things with attached conditions, this will not result in more people having nice things.
You're proposing the alternative "let people live in the US without being tied to a specific employer." But realistically, the alternative on offer is "don't let people live in the US at all."