Unexpected grab behavior

I’m used to the notion that grab sends a message to an object out its
right inlet and reroutes the result of that message out its left
inlet. It seems that messages out the left inlet will also cause the
rerouting, even when there is an intervening chain of objects.

The "problem" patcher below attempts to get the length of a coll and
then output its elements in random order using urn. I suggest tracing
it rather than executing it directly. The problem occurs with other
objects besides coll–table, for example–so it’s releated to grab and
not to the object grab sends a message to.

The solution seems to be to use a duplicate object–one for the
message from grab, one for the output of the chain off grab’s left
outlet.