That's OK, although it makes some intuitive algorithms impossible to
implement. For example a straightforward way of computing the set
difference (A - B) destructively is
for each element x in set A:
if x is in set B:
delete x from A
If the "delete x from A" operation invalidates the "for each element x"
cursor then you're out of luck.
Then again, insisting that live cursors stay valid is a heavy
implementation burden that adds a lot of complexity and effectively
prohibits some data structures.
IMO the better part of valor is to try to get away with not having
cursors into mutable data structures. Almost all use cases can already
be handled by the "Mapping and folding" procedures.