Sports should be separated completely from educational institutions at all levels.
The first seeds of this inevitable evolution have been planted. Technological advancements will gradually change the structure -- both educationally and physically -- of schools to the point where interscholastic sports will be completely unfeasible. It's an idea which has already way outlived its time.
I think as long as pro-leagues are allowed to have age floors more stringent than the at large labor age laws you'll have this problem to some degree. This semi-pro, farm system thing that's going on in baseball and football as a result is stupid. Remove the age limits, if you want to play for pay you can try to go pro. Otherwise enjoy a free college education and whatever else an athletic scholarship brings.
The "semi-pro" thing works perfectly for hockey. They've got the best system in place to move kids (16+) towards the pros. The other pro leagues need to take a look at how the CHL, AHL and NHL function together.
I think MLB and the minor leagues do a great job in baseball too. That and the NHL model are what I think football and basketball need to move to. NBA is sort of coming along with the D-League, but they need to open it up to all players of legal age to work - not just the current NBA age/college experience floor - and expand the number of teams.
My problem with the D-League is that the teams are not actual farm teams. IMO, each team should be forced to own a D-League team. From there:
-have two drafts. One for college/intl players and one for high school players (high school players would have to declare for NBA draft).
-if you're drafted from high school, you get a set deal and have to play in the D league for two years minimum
-if you choose the college route, you have to play for 3 years min.
Benefits:
-keeps the college system alive (probably makes it better since you'd have to stay in school for 3 years)
-vastly improves the D-League. Stick those teams in medium size cities near their parent team and they're going to sell a heck of a lot better than what they currently do (imagine LeBron in the D League for two years)
-the play in the D-League is terrible because the players couldn't care less about their team. They just want a contract. On a true farm team, they'd be getting much better, more directed coaching, improving the level of play.
-NBA play would also benefit by having kids more NBA ready by the time they're eligible for a call-up and protect them from having to dole out $XM contracts to 18 year old kids.