This is acceptable because (at least in your code example) the mutation is on a small object, so you are not modifying the object that any other code currently refers to.
It would be unacceptable to make a shallow copy and then modify the nested object! The key is that you clone any and all objects in the object tree that are on the path to the deep property that you want to change.
Redux:
, , , - . state.a.b.c.d, d, c, b, a state. , .