When I dipped into FP I too felt refreshingly relieved, but I also soon realised that the two paradigms just serve different purposes, they are good for different things, and one can not necessarily do all that the other can do, at least not as efficiently and/or effectively.
Here, I saw this coming from the start.

It’s just as easy to abuse FP as in OO or any language for that matter, in writing obfuscated and unmaintainable code.

Know the strengths, weaknesses and limits of each paradigm will go a long way to avoid pitfalls.