I think it depends on whether your definition of OOP is that it uses a message-passing style.
Pure functions don't have to mutate anything because they return values which you can store in new variables.
var brandNewVariable = pureFunction(foo);
With message passing style, you tell an object to store new data instead of asking it what new data you should store in a new variable.
sameOldObject.changeMe(foo);
It's possible to have objects and not mutate them, by making its methods pure functions that happen to live on the inside of the object instead of outside.
var brandNewVariable = nonMutatingObject.askMe(foo);
But it's not possible to mix message passing style and immutable objects.