O problema real é o estado.
Linguagens funcionais não possuem estado global. A maioria dos problemas industriais exige estado em larga escala (como você representa um livro ou um conjunto de transações) mesmo que algumas funções em pequena escala não exijam (processando um razão).
Mas estamos executando código em máquinas de arquitetura Von-Neuman que são inerentemente estado-completo. Então, na verdade, não nos livramos do estado, as linguagens funcionais apenas escondem a complexidade do estado do desenvolvedor. Isso significa que a linguagem / compilador tem que lidar com o estado nos bastidores e gerenciá-lo.
Portanto, embora as linguagens funcionais não tenham um estado global, suas informações de estado são passadas como parâmetros e resultado.
So the question then becomes can the language handle the state efficiently behind the sense? Especially when the data size far exceeds the size of the architecture.
Olhando do lado do hardware
O sistema operacional ajudou bastante nos últimos dois anos a visualizar o espaço de endereçamento, para que os aplicativos não precisem se preocupar oficialmente com isso. Mas aplicativos que não se preocupam em cair na armadilha de debater o hardware quando a pressão da memória se torna intensa (o hardware debulha vai atrasar seus processos).
Como o programador não tem controle direto sobre o estado na linguagem funcional, ele deve confiar no compilador para lidar com isso e eu não vi linguagens funcionais que lidam bem com isso.
No lado oposto da moeda, o programador com estado total tem controle direto sobre o estado e pode, assim, compensar as condições de pouca memória. Embora eu não tenha visto muitos programadores que são realmente espertos o suficiente para fazê-lo.
Olhando do lado da indústria:
A indústria tem muitos programadores completamente ineficientes.
Mas é fácil medir melhorias nesses programas ao longo do tempo. Você joga uma equipe de desenvolvedores no problema que eles podem melhorar o código, melhorando a forma como o programa lida com o estado.
Para programas funcionais, as melhorias são mais difíceis de medir porque você precisa melhorar as ferramentas que melhoram os programas (estamos apenas observando 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 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. Os programadores funcionais são difíceis de encontrar. Assim, seu modelo básico de oferta e demanda entraria em vigor se a indústria trocasse por programação de estilo funcional e isso não é algo que eles querem que aconteça (os programadores são caros o suficiente como estão).