O verdadeiro problema é o estado.
Linguagens funcionais não têm estado global. A maioria dos problemas industriais exige estado em grande escala (como você representa um razão ou um conjunto de transações), mesmo que algumas funções em pequena escala não o exijam (processando um razão).
Mas estamos executando código em máquinas de arquitetura Von-Neuman que são inerentemente cheias de estado. Portanto, na verdade, não nos livramos do estado, as linguagens funcionais apenas escondem a complexidade do estado do desenvolvedor. Isso significa que o idioma / compilador precisa lidar com o estado nos bastidores e gerenciá-lo.
Portanto, embora as linguagens funcionais não tenham estado global, suas informações de estado são passadas como parâmetros e resultado.
Então, a questão então se torna: a linguagem pode lidar com o estado de maneira eficiente por trás do sentido? Especialmente quando o tamanho dos dados excede em muito o tamanho da arquitetura.
Olhando para ele do lado do hardware
O sistema operacional ajudou muito nos últimos anos na visualização do espaço de endereço, para que os aplicativos não precisem se preocupar oficialmente com isso. Mas os aplicativos que não se preocupam caem na armadilha de debulhar o hardware quando a pressão da memória se torna intensa (o hardware debilitante atrasará seus processos).
Como o programador não tem controle direto sobre o estado na linguagem funcional, ele deve contar com o compilador para lidar com isso, e eu não vi linguagens funcionais que lidem bem com isso.
No lado oposto da moeda, o programador de estado completo tem controle direto sobre o estado e, assim, pode compensar as condições de pouca memória. Embora eu não tenha visto muitos programadores que são realmente inteligentes o suficiente para fazê-lo.
Olhando do lado da indústria:
A indústria possui muitos programadores ineficientes em todo o estado.
Mas é fácil medir melhorias nesses programas ao longo do tempo. Você coloca uma equipe de desenvolvedores no problema de que eles podem melhorar o código, melhorando a maneira como o programa lida com o estado.
Para programas funcionais, as melhorias são mais difíceis de serem mensuradas, pois você precisa melhorar as ferramentas que os aprimorarão (estamos apenas olhando como os aplicativos lidam com o estado subjacente de forma eficiente aqui, não a melhoria geral do programa).
Então, para a indústria, acho que tudo se resume à capacidade de medir melhorias no código.
Do ponto de vista da contratação
Existem muitos programadores completos disponíveis para contratação. Programadores funcionais são difíceis de encontrar. Portanto, seu modelo básico de oferta e demanda entraria em ação se a indústria mudasse para a programação de estilo funcional e isso não é algo que eles querem que aconteça (os programadores são caros o suficiente).