Не такие уж там и толстые абстракции. Функция - это всего лишь структура данных с указателем на код (или, если связи можно разрешить статически, без указателя). В Lambda Papers хорошо описано, как eval
сводится к формированию таких структур, а apply
сводится к goto
.
Для встраиваемых систем есть реализации функциональных языков.
О других областях программирования ничего не могу сказать.
В embedded, конечно, есть реализации ФЯ, но погоды это не делает. Мне кажется, в какой-то момент полезно перейти от уровня парадигм программирования к формализмам и моделям из предметной области. При этом не вижу особой пользы в привязывании этих моделей и формализмов к конкретным ООП и ФП. Зачем ставить эти самые ФП и Ко во главу угла при формализации практических задач? Это часто затеняет, усложняет изначально простые понятия и подходы.
Раз уж речь пошла о встраиваемых системах, давайте откроем один из солидных учебников -- Embedded System Design Питера Марведеля. Там есть очень хороший раздел на тему спецификаций и моделей. Никакого ФП нет просто потому, что речь идет о конкретной предметной области. Реплика в духе "а в ФП тоже можно" -- специалистов из этой области совершенно не удовлетворит :)