This week's book giveaway is in the OCMJEA forum. We're giving away four copies of OCM Java EE 6 Enterprise Architect Exam Guide and have Paul Allen & Joseph Bambara on-line! See this thread for details.
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)