It's a free country and these young men, largely from very poor backgrounds, should be free to maximize their income as soon as they would like.
Yet training in some form or another is required for most high paying jobs. Why should athletics be any different?
But you don't need specialized training to play in the NBA. Athletes aren't like doctors. A 5 year old can perform the basic skills required to play a sport for a living. Sure a 5 year old isn't tall enough, strong enough, fast enough, etc., but a 5 year old can dribble a basketball and shoot it, which is basically all basketball is. A 5 year old can throw and catch a football or throw and catch a baseball, or ice skate with a stick in his hand, or kick a ball, etc.
Lebron James didn't need college to play in the NBA, heck he probably didn't even need high school to do it. And, yeah not all players are Lebron James, but very few straight from high school players didn't at least see a second contract in the league. In fact, a larger percentage of college seniors don't see a second contract than the high school players before them. And that is 1st round picks we are talking about since I think only one guy went from high school and was not a 1st round pick.
Some guys will benefit from college, some guys will be harmed, and some guys it probably doesn't matter much. For example, Kenny Satterfield went from a projected late lottery pick after high school to a late 2nd round pick after two years of college. He certainly didn't benefit from going to college and he is not alone. Now sure, it is better for the NBA team to not waste a pick on a guy like Satterfield, then again if he didn't spend the two years in college and instead spent them on a NBA roster, maybe he would have played more than 75 games in the NBA.