When small children are first taught to read and write, the subject is very cumulative. A child can’t write sentences until he can write words. He can’t write words until he can write letters. He needs a reading vocabulary of several hundred words before he can begin to read unknown material.
By high school, it is possible to go in many directions with English. Poetry can be taught early or late or not at all. The same can be said of Shakespeare. The advanced student, who studies Romeo and Juliet with his class, might be ready for Hamlet or King Lear even if his class is not. If the advanced student studies King Lear as an honor’s project or in an advanced class, he is not wasting his time when the whole class studies Macbeth.
Math is a different situation. A student has to study counting, addition, subtraction, multiplication, and division in that order, with the only possible change in order being that multiplication can be taught before subtraction. Although there are fields of math that can be taught out of order, if a student is to reach calculus, which is needed in almost all sciences and many other fields, he needs to study a rather large amount of mathematics in roughly the same order.
Students advance in both math and reading at different rates. In reading, this is not a problem, because you can always give students more to read. In mathematics, not allowing students to advance holds them back. Indeed it might keep them from ever reaching calculus, because they find math boring, don’t study, and get behind.
Students who are genuinely better in math, should be put in classes where they work just as hard as their peers, but cover more advanced topics. The reward for doing well should not be more work, but more interesting work. Too often, the reward for doing well is either more work or boredom. Neither motivates students to learn.