Iterator invalidation is a kind of use-after-free.
Mutating aliased objects is, of course, usually the desired outcome and not a bug. It becomes a bug when your program's concurrency logic is not thought through, and there are no easy solutions here.
a) probably the least important class of bugs for this sort of thing
b) adequately solved with the existing C++ language features anyways.
So what would be the point of rewriting in Rust?
(Assume the people writing it aready have the C++ knowledge and tooling ready.)