The MSDN docs says that ConcurrencyMode.Reentrant enabls the situation that when the current service operation calls out, it will silently release the lock on this service object, so other thread can require the lock, and do any interesting things on this service object. But the code sample just shows us that the callout is actually a call to another service. so does any normal callout will release the lock such as calling into another normal .net methods rather than calling into another service operation?

Sheva