Yes but with persistent data structures each operation implies a cost, more or less big. For example most of times you do something with an persistent array you end up with fully cloning it.
What's the point? I know the advantages of immutability, but I think that perform impure operations into pure functions, in a safe contest, is not so bad.
My function can help with this...we could perform those faster impure operations (modifiyng local objects and arrays) and then create full, deeply cloned entities to pass around.