I only know one problem domain where a form of an OOP is required (although it must be built on top of asynchronous messages, i.e., none of the existing popular OO implementations would fit) - agent-based simulations. It is well below the 0.01% threshold I set so generously.
And please do not confuse the OOPish language features (which are just poor man modules support in most cases) with OOP-the-design-methodology. The latter is garbage, the former is just an innocent bunch of language features.
Btw., it is funny when OO zealots are calling anything else a "religion". They should look in a mirror first. OO is a religion and nothing but a religion.
I don't know how to go about debating the merits of OOP, aside from saying it's convenient for things that... behave like objects. And of course there are multiple ways to skin a cat, so you can reply with alternate ways to code graphical widgets etc. And then I say you're putting the horse before the cart, and you say the same to me...
The only thing I'd be dogmatic about is that programming is still a complicated mess, and it will likely remain so for decades. Nobody has any of this remotely figured out, so it's probably best to be pragmatic, rather than commit oneself to purported "magic bullets" (whether they be OOP, POP, Functional, Procedural, etc).
My guess is that the real "magic bullet" will come from AI. I doubt human beings are smart enough to reason about what good programming practices look like. So until an AI comes along to tell programmers how best to design code, it's all just a matter of personal preference.
If you want to have a paradigm that is really succesfull, it would involve using every aspect of the human mind. We are good at perceiving 3d space. We are good at instantly computing physics. We are good at perciving other human behaviour. We are good at recombining existing tools to create more sophisticated tools. If you want optimal results, without the struggle of reeducation, tailor the paradigm to the existing creature, not the inverse approach.
> I doubt human beings are smart enough to reason about what good programming practices look like.
You don't need to be smart to reason, after all, reasoning is a formal, mechanical thing. And there is always a mechanically derived best possible model for each and every problem domain. So it is in fact always very easy to prove that OOP is inadequate and another model is this many times closer to the formalism of the problem domain. For every problem domain out there. There is no place for personal preferences, it's all formal.
Well, I admire your optimism, at any rate.