Здравствуйте, gandjustas, Вы писали: G>1)Императивный код часто неявно оперирует состоянием, бывает сложно отследить что на самом деле происходит
Инкапсуляция и ограничения. G>2)Императивный код сильно зависит от порядка вычислений, что ограничивает возможности декомпозиции и композиции программ
Структурирование. G>3)Императивный код при повышения уровня абстракции быстро теряет гибкость, появляется необходимость переходить к более декларативным конструкциям
С повышением абстрации не престаёт быть императивным(то есть это всё таже последоватльнось действий).
Думаю это проблемы реализации(конкретного ЯП), а не самого подхода.
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)