I think you vastly overstate the issues surrounding OOP. After all, it has been used assiduously for over three decades in the enterprise. OOP is easily the most popular paradigm in the IT industry. Nearly all of the major IT languages are OOP-based. In fact, pressure caused ECMA TC39 to add class-based OOP support to ECMAScript (even if it’s only syntactic sugar). If OOP was as bad as you imply, then it wouldn’t have survived for so long.
It’s also important to note that not all OOP languages are created equal. Smalltalk has long been regarded as the premier OOP language, one that has directly influenced a great many other OOP languages, including the most recent ones such as Perl 6, Swift, Dart, Scala, and Groovy. Everybody wants to emulate the best!
Smalltalk is such a fantastic OO tool that it’s been used to write a million-line battle simulation program for the U.S. joint military called JWARS. I had the pleasure of speaking to one of the JWARS architects last year and he told me that they didn’t run into any of the problems you fulminate over. JWARS was definitely an architectural success.
I’m not saying that the issues you raise aren’t real, at least, for some OOP languages. However, you should understand that no programming language and no programming paradigm is perfect. We just have to find workarounds for those things that we may find objectionable.
You make it sound like functional programming is a panacea, like it’s utterly perfect for all situations and all occasions. There’s an age-old adage: “Choose the right tool for the job.” Sometimes, that right tool is an OOP language; sometimes, it’s a FP language. Sometimes, it’s something altogether different.