In addition to the concerns you mention, there is also the by-product of top talent being concentrated into just a few teams. For example, Kentucky, North Carolina, Duke, etc. have multiple one and done players every year. All of those guys are 4 and 5 star guys. When they leave Kentucky, North Carolina, or Duke, they get replaced by the next class of one and done players. If these one and done players had to stay for 2 or more years, the recruiting classes would be smaller, meaning more of these top players go to other programs, which spreads the talent out among more teams, and increasing the quality of multiple teams.
It also damages the product in the NBA by letting kids who aren't physically or emotionally ready to play into the league.