Two things which I haven't yet found in this thread, and are not modeled.
1) Higher education=/= higher education. Basically in this game an engineer can fill a higher education job in Lawyer's office, and a MD can fill an engineers job. Obviously IRL it's not true.
2) not every person is intelligent/wealthy/dilligent enough to finish the uni. Even with free universities the students have to eat, they need a place to sleep. These things are not free, and they either work and study (which is harder, thus more of them won't finish the university) or he'll need a grant (hard work, not everyone can get it) or he needs wealthy parents (obviously not everyone has them).
How to model it?
I think the first one could be, in basic, of course, way, implemented into the game. Divide the higher education into 3 categories: engineering, law and economy (or smth like that, same thing). Industry can only provide higher education job for engineers, offices for lawyers, and commercial for economists. The engineer, if there is no HE job in industry available) can still get any middle education job, but he won't be able to do lawyers job.
The second is harder, but maybe make some percentage of students fail, and the ones with more HE adults in their household have lower chance to do it?