Doesn’t this problem occur whenever you can pass something by reference and you have mutable state? It doesn’t seem unique to OOP in that sense. At least with Encapsulation you have control over who can hold a reference (the caller of the constructor and the constructed object itself). Without it, anyone can grab the reference and mutate away.
Mutable state is bad, but that doesn’t mean Encapsulation is a bad idea.