I think the NBA has a prerogative to say they want the players to be a certain age before they join the league, if that makes the NBA product better.
I do think that the NCAA is a corrupt institution and I'd love to see something done to give players on a pro-track (i.e. all they want to do is be professional bball players) a better option than taking on the risk of playing in the NCAA for nothing more than the cost of food and housing, a chance at a degree (that they may or may not use), and some exposure to NBA scouts to help them get drafted.
There are some guys who are better for having gone to college, and for those guys staying in school for 2-3 years at least is probably better, even if they end up in the NBA or playing overseas. For others, time spent in college is just time they could be spending learning to play the pro game.