Students shouldn't have to sit through a class where they don't learn anything or the class is to slow for them. Instead of being based off of age, the grade levels should be based off of general knowledge about each subject. Even if some schools do allow students graduating up a grade level, this is irregular and complicated.
As appealing it may sound, I don't see how a system could be developed to achieve something of that sort. You can make every student take an aptitude test, but how would you know that the test results are an accurate reflection of the student's abilities? And when you factor in personal bias on behalf of the teachers, the system becomes a mess.