&quot;silently exposing internal complexity via mutable state&quot;<p>It does no such thing, OOP encapsulates both data and behavior, it encapsulates its internals and exposes an API that ensures its class invariants - there&#x27;s nothing in OOP that dictates implementation or that it has to use mutable state.<p>We&#x27;re able to write larger and more complicated software because of the encapsulation possible in OOP, not in spite of it.