I believe this
blog by Chris Tavares explains the reason behind it. See the Example: CachedLifetimeManager and Multithreading topic of the blog.
I'm just not sure if the scenario you have was taken accounted for when the code was written.
Global Technologies and Solutions