As you distilled it down, you seem to have forgotten about the data.
I don't think there's any practical reason why you couldn't have perfect data isolation in OOP (make everything private, only pass copies of objects around, build an event/dispatch system), this isn't what usually happens. As Joe Armstrong said: You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.
That's why there's an emphasis on message passing, because it speaks directly to data ownership. OOP, not so much.