When the actor attribute is omited, the header is meant for the final receiver. The mustUnderstand attribute must only be interpreted IF the system plays the indicated role.
So, specfiying no actor and a mustUnderstand = 1 means that the final receiver must understand the header block.
Specfiying actor = next and mustUnderstand = 1 means that the next receiver in the chain must understand the header block (which might also be the final receiver)
Specifying actor = 'logger' and mustUnderstand = 1 means that only the receiver playing the role of 'logger' must process the header block.
For the last case, when there was no receiver playing the 'logger' it is my believe that the haeder will reach the final receiver and the header is discarded (unless the final receiver plays the role of logger)
Life just hasn't been the same since the volcano erupted and now the air is full of tiny ads.