I believe in the whole concept of age based teams, but if it is done for safety reasons, than there can be no complaints that a great team should play UP and not slaughter their peer teams in the division. Many teams play up because they are better than their average peers, but if we are calling this a safety decision to not let kids play grade based- than playing up should be ruled out for the same reasons- safety.
I do see a HUGE difference in my boys from 6th, 7th and 8th grade- but I also saw how their teams needed to play up for the correct competition. I am not sure what the answer would be there.
I also want to point out there are many kids held back because of social, emotional or academic issues- and I believe they should be allowed to play with their friends until 6th-7th grade. Nothing like a kid with little self confidence not wanting to try a sport because he will have to play with kids he does not know from an older grade.