Worse, nothing about functional programming is necessarily about immutability. It is a convenience on small and easy problems, but is far from required. Consider how your computer adds two numbers. Lots of things change state under highly timed situations to give you that answer. It is not some magic table lookup that works with immutable facts.
I may just be bitter by a system right now that is using immutable objects everywhere. I realize this is a straw man, but with heavy reliance on deep (3+ levels) of immutable relationships, it is not uncommon to find crap that is the equivalent of this:
String foo = "hello";
Character bar = foo.charAt(0);
...
//We need to make sure bar is capitalized everywhere
baz = bar.toUpperCase();
//Now to find everywhere this matters and let the caller know.
I realize lenses and zippers and such can help, but so can just being a bit more disciplined about using modifiable items in the first bloody place.