As perguntas que você faz são realmente bem diferentes.
No entanto, não sei até que ponto isso se aplica a programas do mundo real, como sistemas operacionais. Esses tipos de programas precisam de toda a força da integridade de Turing?
É preciso muito pouco para um modelo de computação ser Turing completo. Por exemplo, vários modelos com contadores podem simular máquinas de Turing. Se você acredita que seu software requer mais de dois contadores que você pode manipular arbitrariamente, você está usando um idioma completo de Turing. Embora os números inteiros da máquina sejam delimitados a priori, as estruturas de dados alocadas em heap geralmente não são. Se o seu software precisar de listas, árvores e outros dados alocados dinamicamente, você estará usando um idioma completo do Turing.
Existem modelos mais simples de computação (como PR) nos quais esses aplicativos podem ser escritos? Em caso afirmativo, até que ponto isso permite decidir a correção do programa?
É importante reconhecer que não queremos verificar propriedades arbitrárias do nosso software. A verificação de propriedades estreitas e muito específicas (sem estouros de buffer, sem referência a ponteiro nulo, sem loops infinitos etc.) melhora imensamente a qualidade e a usabilidade do software. Em teoria, esses problemas ainda são indecidíveis. Na prática, o foco em propriedades específicas nos permite descobrir estruturas em nossos programas que podemos explorar com frequência para resolver o problema.
Em particular, você pode modificar sua pergunta original para
Existe uma abstração do meu software que eu possa analisar eficientemente em um modelo completo não-Turing?
Uma abstração é um modelo que inclui o comportamento do software original e possivelmente muitos comportamentos adicionais. Existem modelos como máquinas de balcão ou sistemas de empilhamento que não são completos para Turing e que podemos analisar. A abordagem padrão na verificação de programas com ferramentas automatizadas é construir uma abstração nesse modelo e verificá-la algoritmicamente.
Existem aplicativos em que as pessoas se preocupam com propriedades sofisticadas de seu hardware ou software. As empresas de hardware querem que seus chips implementem corretamente os algoritmos aritméticos, as empresas automotivas e aviônicas querem software com certificação correta. Se isso é importante, é melhor você usar um ser humano (treinado).