American high schools (grades 9+) already give each student customized schedule, so there is no single set of "classmates" anymore - a Computer Science class might have 9-th graders and 11-th graders sitting side-by-side. This does not reflect their knowledge levels, it only means that one student decided to take CS first, and other student decided to leave CS for later and take some other class (like Physics) first.
This is why parents are unhappy: it's OK to skip most math classes entirely and only do state-mandated minimum... but skipping _basic_ math classes and jumping straight to advanced ones is not allowed.
When a classmate at the same age is covering material that someone else did three years ago, you will get the tension from both sides, in the same way that it's not all that great socially to be on a traditional school and take classes 3 years ahead.
This issue disappears with all adult students, but around puberty, we are short tools whenever we don't have large enough cadres that we can just put all the kids fast at a given class all together.