As a foreign/immigrant ex-scientist, who used to work in academia, I have some insider knowledge here.
From the perspective of an American, he can take his bachelor degree in science and go out and earn $40,000+ on average. Conversely, he can go to grad school and get a $20,000 stipend for the next 4 years while apprenticing with a PhD adviser. Following this, he can now earn $40,000 as a researcher---the same starting wage as an undergraduate, $35,000 if he works in biology. He can hope for some level of job security when he reaches his early/mid-40s although the chances of making it that far is 1 in 10. Being a professor has some stigma in the US, i.e. "those who can't do, teach."
From the perspective of a foreign scientist, it is pretty much expected that one does a stint in the US. The reason is that there are few positions in the home country. There is simply more research money in the US. Consequentially, staying at home and not going to the US is a really bad career move! Additionally, overseas being a college or university professor has more status than being a lawyer or a doctor. Many foreign researchers intend to go home once they've accumulated enough "experience points" to get a professorship in their home country. A few of us like it so much here that we stay.
From the perspective of an American student, he would have to love his field a lot for its own sake. Considering that the hard sciences (physics, mathematics, chemistry, engineering) are widely considered much harder (according to the ex-lawyers and ex-premeds in our ranks) with less job security, less pay, and less prestige compared than more remunerative and higher profile fields like finance, law, and medicine, it's no wonder that it's so hard to attract American students to the science and engineering. The incentives simply aren't there. And why should companies provide them when they can hire a foreign worker whose visa species than he can either put up and shut up or go home? If science and engineering was protected in the same way as medicine or law they would be paid very highly as well. For instance a foreign doctor or lawyer can not practice in the US without the proper certifications; this is much less of a barrier for programmers, scientists, or engineers.
Hence, it's okay for an American student to get a bachelor in science although there are certainly easier ways to make a good living. Getting a graduate degree in science is a very dumb move; this is why there are so many highly educated foreigners filling these positions.