"The world is imperative! Things have state! We do not live in an imaginary fluffy world of mathematical elegance & correctness."
I don't think that this means an imperative language is therefore better than a functional programming language. Many problems would be better solved with more 'mathy' models.
I'm not accusing you of this, but it does drive me a bit bonkers when code becomes anthropomorphized, e.g. "this guy talks to that observer, who sends a message to the account manager." This type of code is frequently not very modular and hard to maintain. A functional programming language makes it hard to think like this, and IMHO that's a good thing.
Processes map well to functional programming, but then when we look at what is being processed, it often has to have state and have specific behaviors. So choosing the best fit abstraction is critical to clean implementations.