The issues with what you're proposing is that only the rich could afford college. Grants help a lot of students from lower SES as well as minorities get a chance at college. Not all of them graduate, but making higher education more attainable is necessary if you want people to have some mobility. If you limited college to only those who could afford to pay for it before beginning, you're narrowing the pool by an immense factor.
As for your second point, I'd argue that you're asking 17-18 year olds to make a prediction on the job market 4-8 years in advance for whatever degree they end up getting. Graduates have a right to be upset if they work towards a degree only to have it not be used like they imagined, or have the job market become extremely tight. Frankly, getting a good paying job as a young graduate is becoming increasingly difficult.
I'd agree with a focus on trade schools, but I think more students should be pushed towards community colleges as they aren't as expensive to attend so they can lessen the burden for the future.