If he's already good at it, teaching it shouldn't help him that much, and now he's wasted time he could be using to learn more things himself (see your own #6).
Agreed. I was the smart kid on the high school football team, so I was tasked by the coach to tutor some of my lesser-performing teammates and it was an absolutely miserable experience.
I would not want smart kids wasting their time with dull kids; but smart older kids imparting their wisdom on smart younger kids (where it won't be wasted)
Second, you are only looking at half the equation. That 7th grader spending time with a smart 6th grader is also spending time with a smart 8th grader.
The benefit comes from the (fact? hypothesis?) that bright children within a couple of years from each other will get a hell of a lot more bang for their buck than the time they spend with their (statistically) relatively average teachers that have lost touch with that part of their development cycle.
7. Have bright students from higher grades teach bright students from lower grades.
8. Embrace, rather than try to diminish, the natural bell curve of student performance and abilities--let students fall behind, and teach them the most critical skills before everything else. Who cares if you can recite the Gettysburg Address if you can't do basic reading an arithmetic. Let students get ahead; and don't burden them with arbitrary amounts of homework simply because they can do it faster; shove hard-to-learn things down their eager minds.