> Rust prevents it by rejecting multiple mutable borrowing. Do you think we can > go this way?
Yes, but there are multiple ways to do it. For example a rule like "you can only pass a location derived from a global variable to a .noSideEffect proc" covers some/all of the cases listed here.