Eu acho que é importante expandir um pouco mais essa depuração "reversa" ou "histórica". Eu acho que entender sistemas e comportamentos complexos nesses, reproduzir "eventos" que explicitam o estado é absolutamente crucial.
O que quero expressar é que você não está sozinho se perguntando por que essa técnica não é tão aplicada hoje em dia ou por que os problemas relacionados raramente são discutidos claramente.
Então, vamos enfatizar dois conceitos muito importantes aqui:
1.Para entender um sistema de programação, é útil tornar explícito o estado
2.Para entender ainda mais um sistema de programação, reproduzir sequências de estado (eventos) pode ajudar muito.
Aqui estão algumas fontes que abordaram o problema e propuseram ou projetaram soluções para o problema (lidando com o estado em sistemas complexos):
- Fora do bit de tar, artigo: http://shaffner.us/cs/papers/tarpit.pdf
Principais idéias: evitar, isolar ou tornar explícito o estado
-CQRS
http://www.cqrs.nu/
Essa é uma combinação de dois conceitos: Segregação de consulta de comando e fornecimento de eventos. Existem implementações diferentes (Java, C #, Scala). A repetição de seqüências Tate e a evolução de um modelo de domínio são as partes cruciais aqui.
Se você realmente diminui o zoom e vê uma imagem muito ampla, já pode ver que, com o "aumento" da programação funcional, as pessoas já são (inconscientemente) atraídas pelo fp porque torna explícito o estado! Mas isso só lida com o ponto um. Para abordar o segundo, você precisa de outro conceito que possa ser "vagamente" descrito como programação reativa funcional.
Então você pode dizer tudo muito bem, mas quem realmente usa CQRS e FRP? Eu diria (na OMI porque não tenho números concretos), na verdade, muitas empresas são apenas porque elas não sabem o trabalho que realizam com essa terminologia. Talvez você pesquise um pouco e tenha notícias de empresas que usam o CQRS, já existem algumas histórias de sucesso por aí. O FRP também está subindo lentamente como um exemplo que eu poderia dar à Netflix: http://techblog.netflix.com/2013/02/rxjava-netflix-api.html
Que acabou de lançar uma implementação do RX que é realmente baseada em .NET (mas tem uma implementação Javascript também). Então, as pessoas já estão usando essas técnicas hoje, IN GRANDE para entender sistemas complexos e torná-los ainda melhores. É por isso que eles usam técnicas de depuração reversa.