ISingletonDependency gets instaniate twice if reference in two different modules.. bug or feature?

I have a service that is implemented using ISingletonDependency (lets avoid the discussion if it really should be a singleton). The service interface is defined in module A, the implementation reside in module B (necessary to get around circular dependencies
in this case). The service is then injected into a FilterProvider/ IAuthorizationFilter in module B and also a controller in module C i.e. it is used in B and C and defined in A.

I can see that it gets instantiated twice: once for each time it is injected. Is this normal behaviour or a bug? I am assuming its a bug since the comment on ISingleton is

Are you sure that you actually get a different instance each time? Having ctor called twice does not necessarily mean the same thing (one of the constructed objects may be discarded in the process, like it happens eg.
with Lazy<T>). If you still find those two different, please file a bug.

Installed 1.7.2 with the default recipe. Same thing: the constructor for the ISingleton get called every time a module is enabled.

To move forward I removed references to the service from other modules and moved the interface into the module it is implemented in. Now the ISingletonDepency is defined, implemented and injected only in one module and I am seeing the above behaviour.

I was sure it was getting instantiated twice but your explanation may explain it. There is a "private static boolean initialized" that get set from false to true when the constructor is called. So as you explained, if it initializes an instance then
destroy it and creates another, that would explain what I am seeing.