That's probably because your bug example wasn't minimized enough. And as it has a call to random, it doesn't even always break. I've minimized it a bit, but more work could be done.
void main() { array _to=({ (<"Stone","1","%70">), (<"Stone","2","%70">) });
foreach(_to, multiset m) { foreach(m;string k;int one){ if(k=="%70") { m[k]=0; break; } } }
multiset direct_add=_to[1]-(<>);
werror("%O %O\n\n", (array)direct_add, direct_add); }