>>> The only entity in the US that wanted and continues to lobby for H1B to continue is industry and their sole reason for doing so is keeping their salary expenses as low as possible. In the software industry it began with the fake premise that there was a shortage of qualified labor. Without a loophole like H1B, when a labor shortage occurs, you have to raise wages to attract people to the profession. With H1B, average wages (not FAANG) have been allowed to stagnate because the visa workers come from countries with a lower cost of living. I'm all for immigration, but not sure it's humane to tie it to a profession - if someone is allowed to become a citizen because of their profession, are they not allowed to give it up and do something else in the future?
Some quick googling indicates there are around 65K H1Bs issued every year, and around 4.4 million software developers. So even assuming that most of those H1Bs go to software developers (they certainly don't all go there) it's still hard to imagine this having a serious detrimental effect on salaries, although I agree it's probably an incentive for the few companies that actually get H1B workers.
BTW, to answer your second question, yes if you become a US citizen you can generally abandon the career that led to your getting whatever visa you had before. In fact you can do that long before you become a citizen. You can do it once you have a green card, which in most of these cases is a minimum of 5 years before they become a citizen.
For most H1Bs it's going to be something like 3-6 years on the H1B during which time you're basically "indentured", followed by 5-6 years on a greencard, during which time you can do whatever you like for a living as long as you don't do anything that suggests your H1B sponsor was lying, followed citizenship.