When you right click on an object “b” (which is not the current object “a”), it would assume that you want the helper shifted there. Along with that action, it would attempt to do something more – as described below
CAVEAT
If you right click on another edge of object “a” (i.e. current object) itself, then you would see the current object itself rotated so that the pointed edge gets the helpers and it is aligned to the previous current edge. This can confuse at first, but when you get the hang of this specific functionality, it can be very useful for flipping objects around by its edges.
See also: Offset Beak Align