ну и пусть торчит, с чего ты взял это от этого больше гемороя, чем от сложных фич языка?
более того, детали реализации лучше видны и понятны.
чем сложнее код и язык, тем дольше время погружения нового человека в проект, тем дороже спецы рынке, тем менее очевидн происходящие.
вся это история про красивые и сложные пассажи 'элитарными' языками ломается обычно на практике. пройди в большой и сложный проект на скале типа kafka и spark и поищи там красоты и абстракции, monix, cats-effects, хотя бы просто обильное использование HKT. там бдует беттер жаба, потому-что в реально сложных задачах эта мишура мешает. то о чём ты говоришь, это больше про то как заумно угореть когда делаешь круд
scala отлично подойдет, если требуется сориентироваться в сложной предметной области. например, распределенное или конкурентное программирование, наладить параллелизм очень сложно, а в Scala есть ряд библиотек, упрощающих эту задачу путем построения абстракций разными подходами (акторный, Akka) и в духе FP (Monix/cats-effect и Scalaz/ZIO)
с помощью Scala можно вывести на новый уровень моделирование типичных бизнес-приложений. в случае с распределенными системами есть технические сложноси, при программировании бизнес-логики в приложениях речь идет уже о сложности предметной области как таковой. например, в книге “Functional and reactive domain modeling” объясняется, как совместить DDD с функциональным и реактивным программированием.