OOP is used to name both the original (Smalltalk-like) OOP which was OK, and the modern OOP (Java-like) which is terrible. This is making it confusing for everyone. Critics of OOP (like myself) usually criticize the Java-OOP, while considering the Smalltalk-OOP to fall under Actor Model definition in the contemporary software.
It's really hard to have these conversations until everyone acknowledge and understand which OOP is being talked about a given moment.
Has nothing to do with Erlang in particular I've written these in c/c++/object-pascal. Implemented my first reliable multicast, pub/sub and state machine engine back in the 90s when I could not afford TIBCO and the likes ;)
But is it OOP that is encouraged or made easy by standard OOP languages? Sounds more like Erlang to me.