O argumento de 'usa a linguagem certa para o problema' é sólido, mas na prática a maioria dos projetos não tem essa liberdade: o time já está em JavaScript, a infraestrutura já existe, e trocar de linguagem não é uma decisão técnica, é uma decisão de time e de custo. Nesse contexto, zod não é overhead, é o mínimo de defesa que você pode ter nas fronteiras do sistema. O ponto do acoplamento é real, mas é o mesmo acoplamento que você já tem com qualquer lib de validação. Concordo que inventar solução em cima de uma linguagem que não foi feita para isso tem limite. Mas onde você traçaria essa linha de 'crítico demais para JavaScript'?
Respondendo a [Não disponível] dentro da publicação TypeScript: ainda vale a pena ou virou cargo cult?
1