My personal solution would be to keep kids in the normal classes, but allow them to opt-in to more challenging course work if they feel they are not being challenged (with the ability to take a step back if they need it). I think the middle school age is the most important time to push this, where grades (at least in my case) aren't exactly the most important thing in the world and aren't a clear determinator of future success (i.e. affecting university admissions).
I don't have kids right now, but if I do, I am not letting them skip ahead on mathematic courses during their foundational years. I'm lucky that I've had the drive to succeed regardless of my inability to pass even the first Calculus class in college, but it's been a huge demotivator in a field full of passionate mathematicians who are my peers.