As linguagens formais garantem melhor as entradas e saídas de dados de cada função. E isso atua como uma espécie de documentação por si só.
Mas claro, qualquer linguagem é boa de programar se você tem uma comunidade ou equipe de desenvolvedores experientes. O problema é que esse argumento é similar ao dos programadores C++ (dos quais faço parte), de que “o problema não está na linguagem, mas em quem desenvolve”. Embora isso seja parcialmente verdade é, na maior parte das vezes, um argumento furado. Quando se programa em equipe, você quase nunca poderá escolher membro-a-membro quem estará no seu time. Pior ainda é se você pegou para manter um sistema legado. Nesse caso, quanto mais “solta” for a linguagem, maior o potencial para a falta de entendimento. E, aliás, note que boa parte das regras que você citou, do zen do python, dão instruções expressas para deixar o desenvolvimento mais formal (como os números 2, 6, 10, 17/18 e 19). Aliás, algumas vão até contra o argumento de vendas do que se entende por script de maneira geral (fácil, despreocupado, compacto).
Quando eu falei de Java ser melhor do que python, estava falando de sistemas enterprise. Os sistemas que você citou não são sistemas desse tipo. São geralmente sistemas onde o começo, meio e fim é definido. Frameworks ou ferramentas para se fazer uma coisa específica. O Wordpress, por exemplo, é um exemplo excelente de sistema que se adapta perfeitamente ao PHP. Eu mesmo já utilizei python em sistemas bastante complexos, que rodavam em conjunto com código C++. Mas sistemas enterprise geralmente são enormes, com equipes grandes e desenvolvedores de todos os tipos, muitas vezes em departamentos diferentes. Coloque na mão deles uma linguagem pouco formal, e o caos se forma em poucos meses. Numa linguagem mais formal, o caos ainda se forma, mas é bem mais controlado. :lol:
Também é difícil dizer pois sempre existirão exceções bem implementadas à regra. E, mesmo nesses casos, não podemos dizer se o desenvolvimento dos caras foi facilitado ou dificultado pela linguagem. Só que foi um bom desenvolvimento. Tenho certeza, por exemplo, que o Minecraft foi imensamente dificultado pela linguagem Java. Mas no final saiu um jogo excelente, topo de linha.
Aliás, não dá para generalizar também. Se eu tivesse que optar entre python e C++ para um site de comércio eletrônico, mesmo sendo o C++ uma linguagem formal, muito provavelmente eu escolheria o python. O C++ tem a desvantagem de passar para o programador a gerência de memória, o que só é vantajoso para aplicações de tempo real (e olha lá). Para um sistema fechado (como o prestashop), eu estaria fortemente tentado a pegar uma linguagem mais simples mesmo, como o PHP ou, no mínimo, considerar a possibilidade de estender o software com alguma linguagem de script, até para facilitar que terceiros criassem plugins para minha plataforma.
Enfim, não existe bala de prata. O que existe é parar, estudar o problema e resolvê-lo da melhor forma possível. Aliás, a gente também faz muito alarde pela escolha da linguagem e, geralmente, embora seja conveniente ter uma linguagem mais prática em determinados casos, esse nem sempre é o único, ou sequer um dos motivos de fracasso/sucesso de um projeto. Eu estaria mais preocupado em fazer parte de uma boa equipe, e garantir um ambiente de comunicação entre os membros do projeto e o cliente.