Primeiro, alguns esclarecimentos: Python é uma linguagem. Existem vários intérpretes diferentes que podem executar código escrito na linguagem Python. A implementação de referência (CPython) geralmente é o que está sendo referenciado quando alguém fala sobre "Python" como se fosse uma implementação, mas é importante ser preciso ao falar sobre características de desempenho, pois elas podem diferir bastante entre implementações.
Como e onde adotamos o SRP sem comprometer o desempenho no Python, pois sua implementação inerente o afeta diretamente?
Caso 1.)
Se você possui um código Python puro (<= Python Language versão 3.5, 3.6 possui "suporte ao nível beta"), que depende apenas de módulos Python puros, você pode adotar o SRP em qualquer lugar e usar o PyPy para executá-lo. PyPy ( https://morepypy.blogspot.com/2019/03/pypy-v71-released-now-uses-utf-8.html ) é um interpretador Python que possui um Just in Time Compiler (JIT) e pode remover a função sobrecarga de chamada, desde que tenha tempo suficiente para "aquecer" rastreando o código executado (alguns segundos IIRC). **
Se você estiver restrito a usar o interpretador CPython, poderá extrair as funções lentas em extensões escritas em C, que serão pré-compiladas e não sofrerão nenhuma sobrecarga do interpretador. Você ainda pode usar o SRP em qualquer lugar, mas seu código será dividido entre Python e C. Se isso é melhor ou pior para a manutenção do que abandonar seletivamente o SRP, mas aderir apenas ao código Python depende da sua equipe, mas se você tiver seções críticas de desempenho do seu sem dúvida, será mais rápido do que o código Python puro mais otimizado, interpretado pelo CPython. Muitas das bibliotecas matemáticas mais rápidas do Python usam esse método (IIRC numpy e scipy). Qual é uma boa sequência para o caso 2 ...
Caso 2.)
Se você possui código Python que usa extensões C (ou depende de bibliotecas que usam extensões C), o PyPy pode ou não ser útil, dependendo de como foram escritas. Consulte http://doc.pypy.org/en/latest/extending.html para obter detalhes, mas o resumo é que o CFFI possui uma sobrecarga mínima enquanto o CTypes é mais lento (o uso com o PyPy pode ser ainda mais lento que o CPython)
Cython ( https://cython.org/ ) é outra opção com a qual não tenho tanta experiência. Eu o menciono por uma questão de exaustividade, para que minha resposta possa "se sustentar por si mesma", mas não reivindique nenhum conhecimento. Pelo meu uso limitado, parecia que eu tinha que trabalhar mais para obter as mesmas melhorias de velocidade que eu poderia obter "de graça" com o PyPy, e se eu precisasse de algo melhor que o PyPy, seria igualmente fácil escrever minha própria extensão C ( que tem o benefício se eu reutilizar o código em outro local ou extrair parte dele em uma biblioteca, todo o meu código ainda poderá ser executado em qualquer interpretador Python e não é necessário que o Cython seja executado).
Estou com medo de estar "bloqueado" no Cython, enquanto qualquer código escrito para o PyPy também pode ser executado no CPython.
** Algumas notas extras sobre PyPy em produção
Tenha muito cuidado ao fazer escolhas que tenham o efeito prático de "prender você" ao PyPy em uma grande base de código. Como algumas bibliotecas de terceiros (muito populares e úteis) não são boas pelas razões mencionadas anteriormente, isso pode causar decisões muito difíceis posteriormente, se você perceber que precisa de uma dessas bibliotecas. Minha experiência é principalmente no uso do PyPy para acelerar alguns (mas não todos) microsserviços que são sensíveis ao desempenho em um ambiente de empresa, onde adiciona complexidade insignificante ao nosso ambiente de produção (já temos vários idiomas implementados, alguns com diferentes versões principais, como 2,7 vs 3.5 rodando de qualquer maneira).
Descobri que o uso do PyPy e do CPython me obrigava a escrever código regularmente, que depende apenas de garantias feitas pela própria especificação da linguagem e não de detalhes de implementação sujeitos a alterações a qualquer momento. Você pode achar que esses detalhes são um fardo extra, mas achei valioso em meu desenvolvimento profissional e acho que é "saudável" para o ecossistema Python como um todo.