http://msdn.microsoft.com/en-us/library/system.servicemodel.channels.messagebuffer(v=vs.85).aspx is somewhat vague when it says that "Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe."
As a general rule, it seems like instance members do not have the thread-safe guarantee.
However, I'm guessing that some instance member methods are reentrant and thread-safe and others are not.
MessageBuffer.CreateMessage is an instance method. Has anyone confirmed whether this specific method is reentrant (or whether callers need to implement locking around calls to the method) ?