I agree completely. I know many countries do exactly as you're saying -- testing early and trying to get people into the track most appropriate for them. Done properly, it's certainly a great idea.
At my high school, we had a very tight relationship with an area "Vo-Tech" (Vocational Technical) school. I'd estimate that about a quarter of the high school would go there during afternoons to take courses in refrigeration, mechanics, electronics repair, data entry, whatever. I have thought for a long time that this is the correct path for a certain type of person who just wants to get out of school and start making cash.
In fact, I think there are probably a lot of trades which are currently learned in universities that could be moved to schools like this instead. Basic programming would be one. All you really need is an apprenticeship and practice to do basic programming. Leave the hardcore R&D and experimental stuff to universities, and teach the basic stuff at vo-tech schools.
Speaking generally to the snobs among us who protest this type of programmer education, consider that many programmers are self-taught, and consider that this would at least formalize the process a bit for them without the expense and tedium of a full-blown university education. They could hire into companies as junior programmers and fight up the ladder like anyone else. If they wanted more than basic programming, they could get into and pay for university. (If you fix refrigerators, you go to Vo-Tech, if you design them, you go to University. Same idea.)