> OO is harder to teach, and clearly harder to understand
That is a pretty damning judgement of OOP. It seems to me the whole point of a paradigm should be to improve understandability. If, in practice, it makes it worse, then it is a failed paradigm.
If you give someone a gun, they might shoot themselves.
If you give someone a table saw, they might cut off their hand.
If you teach someone objected oriented programming, they might write a unmaintainable ball of mud.