How are the teams supposed to know that a kid isn't ready with only high school and 1 year of college? A kid comes out of high school, looks ready by the way he plays in college and then gets to the NBA and finds out he isn't ready.
I have no problem with the NBA instituting a 2 year rule. I would like to see the D-league used differently though. If a kid is coming out of high school and doesn't want to go to college, let a team draft him and have him play in the D-league for a couple of seasons.
The player should meet certain criteria set in place by each team. If deemed not ready then dont draft him. That way another team can if they so choose. The players that are absolutely ready are going to loose 2 years of money making potential with a rule like that. The D league should be a viable option for those that are not ready as well like you suggested.