Within an orchestration a message is immutable, cannot be changed. In otherwords once you have constructed a message it becomes read-only.
Any incoming message is already constructed and so is read-only and can be used anywhere with the orchestration, there are no synchronisation issues.
There are potential issues with messages constructed within the orchestration, with one processing path using a message constructed elsewhere. The XLANG/s compiler is fairly good at detecting the use of a message that may not have been constructed before it actually gets used.
Greg