one xor, yes, but on most systems smaller memory footprint is better. there are many more nodes than iterators. so savings can be significant.
another possible optimization is when 'key' fits in pointer or two. which is usually the case.
wonder if r1 or 03 can do it, with the right instructions of course.