Not quite. Sometimes its' easier to express the low level details of an algorithm in an imperative way, yet retain the ability to compose components together to make a larger system -- particularly when you consider the difficulty of testing at the system level.