Была имитация функциональности- те же Comparator-s.
Было на уровне языка а теперь на уровне JVM т.е. теперь стало возможно оперировать функциями а не функциональными обьектами так же получили полноценные замыкания.
Насчет "незаточенности" не знаю- а какие требования выставляются к среде исполнения, чтобы она считалась "заточенной" под функционалку? И где в Scala костыли?
JVM прежде всего пилится для императивной Java поэтому приходится мириться с кривым выводом типов, отсутствием оптимизации рекурсии и ленивости.
Вместо того, чтобы распихивать функциональный код под разным модулям- я пишу его где хочу.
В Scala эти процессы не разделены никак- запустили формочку, что-то ввели, сложили 2+2, и запустили уже функциональное вычисление.
Так может скала вам ненужна и хватит восьмой джавы? Посмотрите в сторону стримов.
Разделение формочек от вычислений больше от фреймворка зависит, это если у Вас локальное приложение и платформа Java, то что вам нужно, можете написать не только на скала а на любом JVM языке… Erlang дружит с wxWidgets - тожке не проблема... Если Апп большой и толстый разные части будут на языках которые больше подходят для задачи. Вы просто так активно пиарите скалу, а в ней плюсов то не осталось после Java 8 да еще отсутствующая транзитивность с последней требует отказаться от JEE и Spring и перелезть на Play… шаблонизатор на scala скажи привет JRebel ($) иначе повесишься… а нужно права настроить с авторизацией нужно спринг тащить…