Elm — один из многих языков, которые компилируются в JS. И при этом Elm — единственный, который делает невозможно болезненным взаимодействие с платформой.
Даже более страшный вариант: при коллбеках хоть не всё приходилось околлбечивать, а только обращения к браузеру и сети. А тут нужно делать асинхронным вызовы любых внешних функций. Это анти-ФП уже какое-то
И гарантии на отсутствие runtime exceptions тоже нет, если пакет имеет JS-куски. И гарантию безопасности от всяких инъекций можно дать для Elm-кода (ну нельзя в сеть сходить без Cmd!) и нельзя дать для кода с нативом.
в общем, элм следует использовать, если куски взаимодействия с платформой или вычиления не переносимые на элм, вы можете вынести в отдельные таски и работать с ними, это вполне широкий класс приложений
да нет, это обычные приложения, если вы хотите писать игру со сложной геометрией в которой требуется синхроные вычисления и для этого есть только js реализация, вероятно не стоит