O colega @jooojano comentou que o que faz as linguagens serem direcionadas para certas tarefas é a comunidade. Você acha que isso que ele disse complementa o que vc introduziu sobre 'os fundamentos de cada linguagem realmente devem ser estudados para serem entendidos'? Ou os dois existem independentes no desenvolvimento?
Bom ponto, ele avaliou sua pergunta de um ponto de vista diferente. A resposta dele está certa se estamos falando da impressão que as pessoas têm sobre determinada linguagem. Como um exemplo que ele mesmo deu de Python que as pessoas têm a impressão que é boa para data sciente e IA. Isso porque majoritariamente a galera que passaram a trabalhar nessas áreas eram matemáticos e não programadores. Então houve uma preferência em aprender uma linguagem que tivesse uma sintaxe fácil de aprender, Python e R foram as mais usadas pelos matemáticos. R porque sua sintaxe é muito o estilo matemático mesmo, tipo Haskell.
Só que objetivamente falando não existe vantagem nenhuma em Python para esse fim, isso foi apenas um resultado da linguagem ser fácil de aprender. Aliás pelo contrário, Python é ruim para fazer cálculos como esse por causa de sua performance. Por isso que na prática as bibliotecas que fazem os cálculos são implementadas em C (ou outra linguagem semelhante), e Python fica como uma "interface amigável".
Agora na minha resposta eu desconsiderei a impressão da galera e falei sobre o que objetivamente faz uma linguagem ser melhor em determinado tipo de problema do que outra. Por exemplo Go ou Erlang que são muito boas em processamento multitarefa. E C ou Rust que são boas para economia de recursos (memória e processamento), que são as chamadas "linguagens de sistemas"... Não coincidementente C é majoritariamente usada para desenvolvimendo de kernels. Isso não se deu por causa de uma impressão ilusória da comunidade, é que realmente a linguagem é boa para resolver esse tipo de problema.