Наскільки я розумію, вся суть чистої функції в тому, що ти її один раз написав — і потім багато разів перевикористовуєш, не задумуючись про те, як вона написана. Читабельність — це звичайно добре, і важливо, але в ФП це не настільки важливо, як в імперативних мовах.
Можна навести приклад лінуксових команд. Вони абсолютно нечитабельні: "ls", "cwd", "pwd" — але всім на це байдуже, тому що ці команди передбачувані (для того, щоб ними користуватися не потрібно залазити кожного разу в лінуксовий сорс код), їх можна комбінувати через пайпи. Вони дуже reusable і дають високий рівень абстракції — по великому рахунку, мені байдуже як вони написані зсередини — це відповідальність тих людей, які пишуть лінукс.
З чистими функціями так само: не так важливо читабельні вони чи ні, як важливо те, що вони передбачувані і можуть пайпитись одна в одну
Якщо я пишу не системний код, а прикладний, ФП дає більший рівень абстракції ніж інші парадигми