olha repetir validações eu apoio, isso por que lembra ao programador as restrições em que ele está trabalhando, além disso bug não dá para evitar eles podem acontecer por muitas coisas, nunca se sabe.
Apesar de alguns dizer que isso deixa mais lento, só que observe são só alguns nanossegundos de diferenças algumas dessas verificações sinceramente nas minha aplicações nanossegundos nunca fez tanta diferença.
por min acho que ganho mais do que perde.
infelizmente isso vai variar muito de pessoa para pessoas, alem de aplicação para aplicação, procure ver se sua validação é muito pesada ou não.
Eu uma vez tinha uma validação que levava 200ms para rodar, a primeira vista a pouco, mas eu tinha que executar ela umas 10.000 vesses o que tornava ele lento (2.000 s), isso é mais de meia hora rodando, então procure analisar se você ganha mais ou perde.
analise o tempo, de cada verificação.
analise quantas vesses ela ocorre.
e o grau de importância dela. (se ela é um tipo de verificação que toda a aplicação depende ou se ela é só uma parte do código precisa dela)
pelo menos é isso que eu levo em conta