HyperThreading / SMT é um conceito defeituoso?

A idéia principal por trás do HT / SMT era que, quando um encadeamento é interrompido, outro encadeamento no mesmo núcleo pode cooptar o restante do tempo ocioso desse núcleo e executá-lo de forma transparente.

Em 2013, a Intel abandonou o SMT em favor da execução fora de ordem dos seus núcleos de processador Silvermont, pois eles descobriram que isso proporcionava melhor desempenho.

O ARM não suporta mais SMT (por razões de energia). A AMD nunca o apoiou. Na natureza, ainda temos vários processadores que o suportam.

Na minha perspectiva, se dados e algoritmos forem criados para evitar falhas de cache e paradas subsequentes de processamento a todo custo, certamente o HT é um fator redundante em sistemas com vários núcleos? Embora eu aprecie que haja pouca sobrecarga na alternância de contexto envolvida, uma vez que o hardware discreto dos dois HyperThreads existe no mesmo núcleo físico, não vejo que isso seja melhor do que nenhuma alternância de contexto.

Estou sugerindo que qualquernecessidade HyperThreading aponta para falhas no design de software. Falta alguma coisa aqui?