Some teams at some clubs seems to push it more, while others seem to keep all the kids at their age group despite having a "super star" on the team. For example, XYZ FC's U10 team has a 9 yr old who plays up with the 10 yr olds/U11. But ABC FC has a 9 yr old who is better than XYZ's 9 yr old but he does not play up; he plays with his age group. So when these teams play each other ABC's studly 9yr old stands out and dominates. Is this based on what coaches see? what the parents are pushing for? what the kid wants? And is it overall better for kids top play up or stay with their age group? Also, sometimes I see kids playing up a year who are not even the best kids in their age group, which confuses all of the parents.
What you're missing in your reasons is if the older age group NEEDS players from the younger. Sure, the 9yo may be a stud defender on their team, but the U11 team doesn't need another defender. Some clubs struggle to find enough players at various age groups. Some have too many. As far as it being "better", I recommend it. In theory the older players should be "better" and you get better by playing tougher competition. Our kids have been dual rostered at the younger ages, meaning they played with their age group AND the older one. That being said, it's not necessary. If your club doesn't need younger players on the older team, so be it. I'd say don't worry about what other kids are doing. Worry about your own son. Any opportunity for soccer, assuming your son wants to do it, you can afford it, and it fits your schedule, take it. If you can't afford something, he doesn't want to do it, you can't get him there, or it's not offered, then dont.
The metric we tried to use at the club I ran was "they should be starting on the higher year team" Which is kinda weird in that we also preached equal playing time below u15, even for our competitive teams. Now, we'd dual roster kids to address shortages, or make it easier for them to do a fill in due to injury/family stuff/school conflicts. But outright "this kid is playing a year up" was rare. I would probably still use that 1st rule of thumb and really only consider it if my kid had a Jan-Mar birthday - relative age effect being what it is. I also would be prepared to drop them back to their correct age once everyone catches up and not view it as "I'm no good at soccer anymore" when the kids a year older than them hit puberty. With my club lot of the playing up fell apart at the birth year mandate change too, like summer 05 birthdays who were on the 04/05 team mainly to feed the ball to the 04 stud suddenly couldn't hang when playing against Jan-March 04 kids, and so wound up quitting rather than play in their correct age group. But the local HS x-country/tennis/ultimate frisbee coaches were happy to have new participants....
On the boys side where puberty makes a big difference, if you can determine the bio age, then it makes sense to play up if they are an early maturer and want to stay competitive. I have noticed a lot of kids dominating at age 12-14 based on early puberty because they rely on their strength and speed but they might not develop the rest of their game like they need to in order to keep up when they are no longer physically more mature than others their age.
I think that practicing with multiple ages, e.g. having 2011 and 2010 practice together, is a good idea. I think that for games, given the egos of parents, generally players should play with their team's age unless there is a compelling reason to play up.
I think for those who are mentally and physically ready and able, playing up a year (on the highest level of the older group) helps in their development. I've seen kids play year up but on lower flight/division and this can also work too but more than not, I think it's better to stay on a "top team" in own age group vs going to a mediocre (flight 2, 2nd division) older team.
I'm curious, why? I mean depending on the level of that 2nd tier, it might be as good as top tier in the younger age group. I get if talent is below what they're playing in their age group, but that could be hard to tell ahead of time.
Usually, the older 2nd team players are bigger but less-skilled overall than the younger top team players. (If they were big AND skilled, they would be on the 1st team.) Playing with the older 2nd team might help with getting a better size matchup but maybe not with developing skills and speed of play at a top team level. Going back to the original question, I think it really depends on the specifics of what the player and the situation would be playing "up" vs. staying "at age."
On the rec side of our program, we eliminated playing up a long while ago. We decided that parents were often not doing it for the right reasons. On the travel side, I suspect playing up in an option if a player showed up to the older tryout and made the cut. I suspect the number of kids playing up is incredibly rare
For our Town program we don’t roster younger players up on our travel teams. I know local clubs do, but they all have different age groups depending on their league. Our league does have a guest player pass program which we sometimes use to show the kids how the game is played at the next level (9v9 kid to play at 11v11 etc). A player is limited to 3 times a season and has to be planned at least 3 days in advance of the league game.
This has always been the case, my brother in law talks about playing up when he played as a youth, know he plays down as a 50 year old and he should not.