Соглашусь, в этом вся идея - избежать лишних JVM Allocations и dispatch. Когда Я проверял, что выводит компилятор из этой конструкции на OpenJdk 11, Я использовал CFR Decompiler и получил такое: arrowComposed = (ZArrow)MODULE$.arrows().foldLeft((Object)ZArrow$.MODULE$.identity(), (Function2 & Serializable)(x$4, x$5)
Билингва с рождения я за такое бы простил. В остальных случаях это дурной вкус. Человек с нормальным знанием языка должен уметь подобрать слова на родном языке