One of the ways to counter the inevitability of actors making rational decisions that end up making everyone worse off is through the setting of effective public policy with an eye to aggregate benefits.
I think it is very safe to assume that the point of funding engineering education was that engineers' work is valuable to society, not that people who can make it through intrinsically merit certain salaries. If acquisition of talent through immigration is another channel, so be it.
The idea of education subsidies is also interesting to consider. On one hand more people are able to choose the career, so the skills are less scarce, and salaries are lower. On the other hand the increase growth in the community of trained people allows for greater sophistication, cooperation and specialization, which leads to more valuable output, and higher salaries.
Not necessarily. Letting in immigrants with tech skills to compete with software developers should reduce salaries. But letting in immigrants with tech skills to found companies should drive up demand for software developers.
What assumptions? Do people who are neither software engineers nor VC fund owners not own cell phones? Do they not use Google and Facebook? Etc. etc.