I read a book called "My Job Went to India" (it's a tongue-in-cheek tutorial of how to stay competitive in the computer industry) and one of the advice was:
Always be the worst on your team.
The idea is, of course, not to suck but to put yourself on a team with people that are more awesome than you, because that's how you grow. People usually do a double-take when I quote this, though. :-)
On every team, everyone except one is worse than someone else. On every team, someone is the worst.
People work with those worse than them all the time, as those more experienced share their acquired wisdom with the less experienced ones. (Not to mention that you don't have to be the worst at everything. Ideally the places are switched in other realms of expertise.)
For you personally, it means reaching outside of your comfort zone and doing something you're not sure you can do.
You're unwarrantedly assuming a total order on team member qualities, even though in your fourth sentence you point out that in a vector model of skills that assumption is invalid. It's not the only one.
That is what I thought. But not how it is playing out when applying for jobs that put me as the worst one (from my perspective anyway). Perhaps other factors are at play.
This is good advice. Whenever you feel like you're not being challenged any more, it's time to move on.