I don't think that there is a perfect paradigm because they all work...and they all suck in some way.
Imperative...needed for RTOS
Functional...useful for math, linear operations, map-reduce, immutability, replay
OOP...useful for modeling relationships, great for abstraction, great for systems which can be composed, Lego systems....
----
Sure you can find issues in all cases, but none of them fail if you can keep your mental models in check...the problem is always the programmer