I think we're talking next to each other here. What I meant was:

I (aktau) think that the copy is only necessary because otherwise we would be copying from an array (smallarray) into the same array (smallaray). This is obviously bad, it would destroy what you're iterating over.

The vim comment seems to suggest that if you don't to the copy, you can't clean up the items. This is not true, because in all cases except for `small -> small`, there's no need for the copy, and the removed items get filtered out just fine.