Olá, Rebeca!
A razão para isso é que queremos aplicar o display: flex especificamente aos elementos que estão dentro da tag <nav>, que são os links do menu. A tag <nav> é usada para agrupar os principais links de navegação em um site, e nesse caso, queremos que esses links sejam exibidos no formato de flexbox.
Se aplicarmos o display: flex à tag <header>, estaremos aplicando essa propriedade a todos os elementos dentro do <header>, o que não é nosso objetivo. Queremos que apenas os links de navegação sejam exibidos como flexbox, por isso aplicamos o display: flex à tag <nav>. Portanto, se em algum momento desejarmos atribuir algo ao nosso cabeçalho, não precisamos obrigatoriamente que ele seja flex e receba as mesmas propriedades que o <nav> recebeu, sendo assim o header e sua class se torna o avô, mas quem vai "cuidar" será o pai dos elementos a nesse caso o nav e class cabeçalho menu, e se o nav tiver um irmão quem vai cuidar dos seus respetivos filhos será o irmão, sendo a class cabeçalho a única que vai interferir em todos.
Espero ter ajudado e Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!
Sucesso ✨
Um grande abraço e até mais!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!