I don't think playing for JB is the reason MCW, Ennis, Grant, McCullough, Malachi, and Lydon left. MCW went to the final four and didn't have much more to prove. Ennis led us to a 25-0 start and wasn't expected to be a one-and-done player, but performed well enough to get drafted in the first round. Grant was tabbed as a first rounder as well in 2014, but slipped, so maybe he should have returned, but that's easy to say in hindsight. McCullough was alays going to be a one and done. Malachi had a great run on the way to the final four where he got good national exposure. Lydon was ranked what, like 75th in his high school class? In two years he parlayed that into being drafted 24th and probably would have been drafted around 24th as a freshman as well. Coming back wouldn't have improved his stock much.
Why players stay at UNC, I'm not quite sure. Maybe part of it is due to some of their guys underachieving early (James Michael McAdoo) or peaking late (Brice Johnson). If a guy like McAdoo lives up to his hype, I doubt he sticks around for 3 years.