I think the difference has to do with the way functional/declarative programming makes *statements* about a problem as though it's a math problem, where as imperative programming describes a *process*.  In the business world, computer programs wrap or replace physical processes, so you may find a language that reflects this to be more intuitive.

It turns out that the functional style lends itself to making safe use of multiple processors (because it minimizes mutability and side effects) - something we will see more of in the future.  Also, most modern functional languages have collections with iterators you can pass functions to.  These methods can split their workload over multiple processors very efficiently without you even knowing about it.