А я другую проблему вижу в ООП - непроверяемость вычислительных эффектов. В некоторых языках мы можем явно задать правила композиции эффектов, которые будут на стадии компиляции проверяться. Частный случай - побочные эффекты.
Эта идея сама ООП, конечно, не противоречит, это скорее я про ООП в Java/C#/...