Acredito que aqui mais uma vez cabe o famoso “depende”. Vamos analisar o que acontece na prática. 
Quando você vê boas práticas e regras de desenvolvimento modernas, você encontra as tags da web semântica, e compreende os benefícios de dividir a página em segmentos com significado, ótimo para acessibilidade, reconhecimento por máquina, indexação…
Como com quase tudo não termina por ser uma regra rígida. Quando você faz um HTML puro e direto, e estrutura uma página estática comum por exemplo, é muito simples fazer o header, o footer, section, aside…
Porém isso começa a mudar quando você se depara com a vasta quantidade de bibliotecas, frameworks, plataformas de desenvolvimento, que existem para desenvolvimento web. Não só muda o cenário na questão do seu controle de como a página é construída no final, como nas diversas formas de nomear, gerar, classificar os elementos, e como você trabalha com as ferramentas… além claro de que projeto se trata.
Sugiro abrir sites em geral, e acionar a ferramenta de inspeção, o “DevTools” do navegador. Na aba “Elements” dê uma analisada como as páginas chegaram no final.
Tente entrar em páginas conhecidas como www.microsoft.com ou mail.google.com e observe os elementos ali. Sim, você verá uma chuva de DIV.
Há outras formas de lidar com a acessibilidade ou indexação, e você verá abordagens diferentes, talvez uma propriedade “role” para definir o papel daquele segmento, como “main”, “presentation”…
Entre no site do Carrefour: https://www.carrefour.com.br/
É um cliente VTEX, que utiliza a plataforma. Você verá muitos “react_component” ali, e uma infinidade de DIVs.
São páginas bem mais complexas do que os modelos puros que se faz ao estudar HTML, e quase sempre construídas com frameworks ou bibliiotecas, react, angular, ou mesmo que somente estilizadas com Bootstrap. Você termina por “dar nome aos bois” através de abordagens como nomes de classes ou ids, ou poucos elementos semânticos contendo inúmeros div.
Claro que ao observar as documentações, você vê formas de construir páginas todas divididas em tags semânticas com biliotecas e frameworks, mas não é uma decisão tão simples num contexto de um negócio, como “usar ou não”.
Em resumo: ao constuir páginas puras em HTML, a orientação é fazer dessa maneira aí mesmo. E sempre haverá a orientação de fazer como “melhor prática”. Mas essa decisão pode mudar conforme o contexto vai se tornando mais complexo.
