А если у тебя тысяча функций и несколько сотен видов данных для обработки, да еще и кучей разных форматов? А десять тысяч? Делать огромную документацию, в которой описывать какая функция с какими видами данных может работать и каждый раз её пересматривать в процессе написания или чтения кода? А вот ООП, говоря простым языком, позволяет группировать функции в отдельные группы, т.е. классы, которые могут работать с определенными типам данных и связывать сами эти группы функций с определенными типами данных, а так же связывать классы друг с другом (иерархия, наследование и прочее).
Ага, поработал я как-то с ООП, с классами на тысячу строк и более, с глубинами такими, что утонишь раньше, чем до реализации доберёшься. Уверен, там можно было сделать и лучше с ООП подходом, но с тем же успехом можно сказать, что и при ФП подходе можно сделать конфетку.
Речь не столько о том, чтобы использовать и ФП, и ООП в одном месте, сколько в том, чтобы взять часть оттуда, часть отсюда и вывести конкретные правила для всего проекта. И ФП — это не про быстро и некачественно. Имхо, это ближе как раз к ООП, поскольку каждый раз, когда я в тс сталкивался с полноценным ООП, это была какая-то хрень. Да, выборка у меня маленькая, но ничего другого я не видел.