This might be an effect of the current education system, not a cause, but I still think it's wrong-headed to put kids permanently into a "teach all the harder stuff RIGHT NOW" class just because they happened to have mastered one or two things early. It may just mean their parents decided to teach them one or two things the other kids' parents didn't; it doesn't mean they're at the developmental stage where they can absorb the more difficult material.[2]
What would help, in my mind, is for kids to be able to learn each subject at their own, separate pace--one "micro-skill" at a time, advancing to the next only when all the micro-skills relied upon as a base for the next micro-skill have been mastered (100%ed). [Think of it sort of like an unlockable "tech tree" of education.] For this to work, a school would need to provide:
A. free access to recorded lectures--not necessarily created by the school, but hopefully taken from the very best presentations of that micro-skill in the world;
B. computerized tests for each individual micro-skill that can be retaken infinitely without score penalty (but procedurally-generated so that this can't be used as a way to cheat), and which, importantly, should also be able to be used as a pre-test to "test out" of having to learn things one already knows;
C. the availability of tutoring/mentoring from others who have just finished learning the micro-skill (not teachers, for whom it's been forever since they learned it; and especially not "peers", who don't understand what they're saying yet.)
This is very difficult to implement, though, when the majority of school-time until at least University (and sometimes continuing through undergraduate studies) is spent in centralized lectures on messy conglomerations of many micro-skills taught in arbitrary order (that is, "courses"), where for each one, the students likely are either "above" or "below" the level.
This format won't be going away any time soon, so these hare-brained "just move them up or down in everything" schemes will continue to be put forth in its place.
---
[1] http://en.wikipedia.org/wiki/Regression_toward_the_mean
[2] http://en.wikipedia.org/wiki/Theory_of_cognitive_development -- basically, there is a reason we don't start mathematics education with set theory, even though it's more "fundamental"--it's more abstract, and abstraction requires faculties that don't develop until later on. The same can be said for teaching kids "real programming" at an early age.