I think I got it: there was a call to ObjectFactory.Inject for every request, which as far as I understand completely reconfigures the _instances dictionary in the current profile. The comment of Inject states the following:
/// Injects the given object into a Container as the default for the designated
/// PLUGINTYPE. Mostly used for temporarily setting up return values of the Container
/// to introduce mocks or stubs during automated testing scenarios
I suppose it was mainly used for testing and not in productive multithreaded environments. I will attempt to work around the Inject method for now, though I am asking myself if this is by design or if it should be reported as a bug.