Minha resposta provavelmente não se expandirá muito nas respostas existentes, mas acho que meus dois centavos podem ser úteis.
Primeiramente; Sim, por modularidade, você geralmente abre mão de algum nível de tempo de execução. Escrever tudo no código de montagem fornecerá a melhor velocidade. Dito isto...
Você conhece o YouTube? Provavelmente o site com maior largura de banda existente ou o segundo na Netflix? Eles escrevem uma grande parte de seu código em Python, que é uma linguagem altamente modular, não totalmente construída para um desempenho de alto nível.
O problema é que, quando algo está errado, e os usuários estão reclamando sobre o carregamento lento dos vídeos, não há muitos cenários em que essa lentidão seria atribuída à lenta velocidade de execução do Python. No entanto, a rápida recompilação do Python e sua capacidade modular de tentar coisas novas sem verificação de tipo provavelmente permitirão que os engenheiros depurem o que está errado muito rapidamente ("Uau. Nosso novo estagiário escreveu um loop que faz uma nova subconsulta SQL para TODOS os resultados. ") ou (" Ah, o Firefox descontinuou o antigo formato de cabeçalho de cache; e eles criaram uma biblioteca Python para configurar facilmente o novo ")
Nesse sentido, mesmo em termos de tempo de execução, uma linguagem modular pode ser considerada mais rápida, porque depois que você descobrir quais são seus gargalos, provavelmente ficará mais fácil reorganizar seu código para que ele funcione da melhor maneira. Muitos engenheiros lhe dirão que os resultados de desempenho pesado não estavam onde eles pensavam que estavam (e, na verdade, as coisas que eles otimizaram eram pouco necessárias; ou nem funcionavam da maneira que esperavam!)