Infelizmente todos os exemplos que deu podem ser adquiridos com a prática sim, como o exemplo da centralização, se o cara for ler a teoria por traz dos alinhamentos dos elementos html ele provavelmente não vai entender nada e/ou esquecer tudo na semana seguinte, é relativamente complexo pra iniciantes e praticamente um conhecimento inútil se não for um dev que vai atuar diretamente nessas mecânicas, é na mesma pegada das escolas ensinarem Baskara e Logaritmos pra alfabetizarem seus alunos e no final estamos formando analfabetos funcionais.
Discordo em partes, não é framework nem linguagem que deve dar ênfase na teoria e sim nas bases, como algoritmo e estrutura de dados, e nas partes majoritariamente teóricas como arquitetura e código limpo.
Infelizmente vejo muitos devs com anos de experiência que não sabem fazer algoritmos eficientes usando estrutura de dados eficientes para a questão problema e sequer aplicar DRY corretamente, isso seria resolvido com um carinho a mais nos tópicos que citei no parágrafo anterior.
Costumo dizer que o ideal é aplicar o princípio de pareto nos estudos, 20% teoria e 80% prática. Mas não só isso, saber o que estudar é fundamental e essa é a parte mais difícil.
Até um senior deve rever regularmente conceitos de arquitetura, código limpo, algoritmo e estrutura de dados e afins.
Em resumo quase toda a parte teórica que vai estudar não depende da linguegem ou framework do contrário aí sim você vira um programador chaves, um programador que sabe fazer um formulário em react mas se precisarem dele pra fazer o mesmo formulário em angular ele não sabe.
Exatamente como o chaves faz.