конечно. наверное, можно абстрагировать идею как def fun(init: Init)(work: Work): Result тогда на первой фазе при старте приложения мы делаем currying всем функциям, вычисляя Init
получая на выходе граф зависимостей каррированных функций, которые уже не должны пробрасывать данные, которые никогда не меняются в процессе работы приложения
Иными словами, проблема зависимостей в коде - это проблема того, что большая часть аргументов функций в ФП приложении всегда принимает одно и то же значение, а пробрасывать их надо все равно все.
согласен, большинство функций - оконечные, у них нет зависимостей и им не нужны дополнительные данные. но не-оконечных функций тоже много и это проблема.