Have to disagree. You're basically saying that an 18 yr old person, who is considered in an adult in every state in which the NBA plays (47 states), can not attempt to make a living playing basketball in the NBA. I think that would make a very interesting class-action lawsuit against the NBA for restraint of trade.
From the players' perspective, there's incredible pressure on them to come out for any number of reasons. Many times its the potential to make life-changing money; and they're encouraged (pushed) by agents or prospective agents, family members, or friends who are looking to gain from the prospects' potential earnings.
If an NBA team thinks a player isn't ready but wants to have them on their roster, they should draft him (if he's available) and put him on their developmental league team. I think they should start drafting these guys late or as free agents and sign them to play in the NBDL at low salaries. Maybe they could implement a salary structure for high school players. That might slow the flow. The problem is, the teams don't have the discipline to stop themselves. With the success of guys like LeBron, Kobe, KG, Dwight Howard, Moses Malone and others, most teams are willing to take the chance on some high school phenom. If the kid doesn't work out, its on to the next one.