Uma coisa que é realmente importante para esta pergunta (e as respostas) é a seguinte: O que diabos é a programação funcional e quais são as propriedades mais importantes dela. Vou tentar dar a minha opinião:
A programação funcional é como escrever matemática em um quadro branco. Ao escrever equações em um quadro branco, você não pensa em uma ordem de execução. Não há (normalmente) nenhuma mutação. Você não volta no dia seguinte e olha para ele e, quando faz os cálculos novamente, obtém um resultado diferente (ou pode, se tiver tomado um café fresco :)). Basicamente, o que está no quadro está lá, e a resposta já estava lá quando você começou a escrever as coisas, mas você ainda não percebeu o que é.
A programação funcional é muito parecida com isso; você não muda as coisas, apenas avalia a equação (ou, neste caso, "programa") e descobre qual é a resposta. O programa ainda está lá, sem modificações. O mesmo com os dados.
Eu classificaria o seguinte como os recursos mais importantes da programação funcional: a) transparência referencial - se você avaliar a mesma declaração em outro momento e local, mas com os mesmos valores de variável, ainda assim significará o mesmo. b) sem efeito colateral - não importa quanto tempo você olhe para o quadro branco, a equação que outro cara está olhando para outro quadro branco não mudará acidentalmente. c) funções também são valores. que podem ser passados e aplicados com ou para outras variáveis. d) composição da função, você pode fazer h = g · f e, assim, definir uma nova função h (..) que é equivalente a chamar g (f (..)).
Como a lista está na minha ordem priorizada, a transparência referencial é a mais importante, seguida por nenhum efeito colateral.
Agora, se você passar pelo python e verificar o quão bem a linguagem e as bibliotecas suportam e garantem esses aspectos - você estará no caminho certo para responder sua própria pergunta.