When I was a kid, I would happily teach another kid something if that kid was generally smart. It was an investment of time. There was the possibility that they could teach me things.
For a given pair of students X and Y, it may be a poor investment for X to teach Y anything, if X will almost surely dominate Y within the problem domain. It would be stupid to force X to teach Y in this setting.
I think the general argument is that attempting to teach something, forces you to work with the material in your own head in a way that improves your own understanding. This is similar to "rubber duck debugging" where explaining a problem to an inanimate object leads you to the solution. But interacting with an actual human being often helps too.
For a given pair of students X and Y, it may be a poor investment for X to teach Y anything, if X will almost surely dominate Y within the problem domain. It would be stupid to force X to teach Y in this setting.