Já bych řekl, že těch výhod je víc, třeba snadnější porozumění chování programu než u obecného imperativního kódu nebo poměrně přirozená paralelizace programů.
Na Haskellu se mi líbí, že je na první pohled (podle typu funkce) jasné, jestli je „čistá“ nebo ne. Ve většině ostatních jazyků nelze u žádné funkce, která není triviální (tedy volá alespoň jednu funkci/proceduru/metodu) nikdy říci, co přesně její volání provede, aniž by bylo nutné znát poměrně široký kontext; u dynamických jazyků to platí obzvlášť.

