Sorry, but in my opinion this is nonsense. I've seen firsthand when people all of a sudden try to start writing functional code. What a mess. You can truly and deeply f# up your code in many styles, be it oop or functional. The amount of data being copied into new structs / objects every time you change something is amazing. No, I'd rather take the oop approach, strip it from all the unnecessary clunkiness (like deep levels of inheritance) and make the code easy and good to understand.
So no, introducing the next holy grail will not solve the problem.
Solving the problem is what actually solves the problem. Meaning: Do no just try to blame the bad code on the underlying languag and its princibles. Blame it on the fact that writing good code requires passion and diligence.