Rafael, excelente questionamento! Imagino que em uma equipe com muitos sêniors há uma grande chance de dar problema, mas mais pelo fato de cada um querer puxar o barco para um lado (por exemplo, nas decisões de arquitetura e modelagem).
Agora, já trabalhei com equipes pequenas que deram muito certo, pois todos tinham uma maturidade muito alta sobre o design da aplicação... e a maturidade neste ponto vai além da parte técnica e entender que qualquer tarefa importa, se ela for importante.
Então disso eu separo pessoas seniores em duas categorias: seniores maduros e seniores imaturos. Um senior imaturo vai de fato querer se escapar das tarefas chatas, simples, e não irá fazer nada para parar de ficar desmotivado com o próprio trabalho ou sobre a situação que se encontra. Já um sênior maduro topa fazer todas as tarefas, as legais, as chatas e as simples caso essas tarefas sejam importantes, como por exemplo, impactem no usuário final. Na cabeça de uma pessoa madura, não existe tarefa chata quando há impacto real (seja direto ou indireto). E se não há impacto algum, nem indireto, porque essa tarefa está sendo feita? Até uma refatoração tem impacto: direto em quem trabalha com o software e indireto no cliente que usa o software e vai conseguir receber atualizações e novas features mais frequentemente no futuro.
Veja nesse tweet um ângulo adicional sobre a postura madura que comentei:
E sobre o quote do Fábio Akita, nada do que eu comentei exclui sobre a relação entre um Junior e Code Review, nesse caso acho algo extremamente saudável para transporte de conhecimento 🤝 mas por fim, é tudo uma questão de trade off 👍