Any named object, actually. And once-through is intended behavior, like import. Cross-thread dependencies are not supposed to impact this import mechanism (there's an import lock), but maybe IA has introduced a bug here.
Consider using a global lock object to ensure initialization doesn't happen in parallel (via system.util.getGlobals() or the similar system.util.persistent() from my LifeCycle module).