Há uma variável chamada const mensagensDeErro onde estão todas as mensagens de erro de diferentes tipos (valueMissing, patternMismatch, customError), e todas as que são mostradas na página tem origem nesta variável.
Pergunto por qual razão em relação às customError temos que ter as mesmas mensagens nas "function" de validação de cada campo (cep, idade, cpf) se quem realmente insere a mensagem é innerHTML=mostraMenagemDeErro(tipoDeInput,input)?
function validaDataNascimento(input) {
const dataRecebida=new Date(input.value);
let mensagem='';
if(!maiorQue18(dataRecebida)){
mensagem='Você deve ser maior de 18 anos para se cadastrar.'