O próprio criador do Node admite que o node_modules foi um erro. Veja esta palestra dele, especificamente aos 13 minutos, quando ele mostra o slide dizendo "It's my fault and I'm very sorry".

Tanto que ele próprio resolveu criar o Deno, com um esquema mais centralizado - mais detalhes aqui.

nunca tinha parado pra pensar sobre esse problema do node_modules. existe alguma "solução" ou ao menos proposta pra melhorar isso?

acham que o composer do PHP pode ter o mesmo problema?

Uma ideia é ter um local centralizado, já evita que se baixe várias vezes a mesma coisa. Mais ou menos como o Maven/Gradle já faziam, e bem similar ao que o [Deno está fazendo](https://pt.stackoverflow.com/q/457504/112052). Claro que não é livre de problemas. Gerenciamento de dependências parece ser algo difícil de resolver, no fim é algo que temos que conviver.