Oi, Mauricio! Como vai?
A necessidade dos 10 segundos acontece para garantir que o processo de remoção de elementos seja feito de maneira controlada. O uso do elemento.classList.remove('visible') apenas remove a classe que deixa o elemento visível, mas ele ainda estará no DOM. Já o elemento.remove() efetivamente remove o elemento do DOM.
Assim, os 10 segundos no código é relacionado ao tempo necessário para garantir que o elemento possa ser removido de maneira segura após a execução da ação anterior. No caso do setTimeout, você está programando a remoção do elemento após 10 segundos para que o processo de remoção de sua classe 'visible' seja concluído antes, garantindo que a classe tenha tempo suficiente para ser removida antes de o elemento ser excluído.
No caso da resposta certa, a condicional é usada para determinar qual abordagem aplicar, evitando que ambas sejam chamadas ao mesmo tempo, o que poderia gerar sobrecarga ou um comportamento inesperado.
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Ficamos à disposição :)
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!