Не претендуя на абсолютную истину, я для себя в какое-то время решил определять функциональность языка наличием в нем первоклассных лямбд с автоматическим замыканием лексического контекста изкоробки (не эмуляцией коллабл объектами и прочим). В этом плане Джава фя, С++ и Питон фя с ограничениями, а С и Паскаль не фя. И поддерживаю тезис "императивное с функциональным вообще не связано". Большинство фя при этом императивны, и лишь некоторые декларативны.