Subcircuit insertion rules
Three official rules govern what may be inserted into what. (a) A circuit may insert ANY other circuit, as long as doing so does not create a recursive cycle. (b) A circuit may also insert its OWN subcircuits, reusing them within the same parent. (c) A sub-circuit may NOT insert any circuit or subcircuit — nesting is one level deep from each editing context, so while you edit a subcircuit the Insert command is disabled. Together these rules keep the hierarchy finite and guarantee the flattener always terminates.
Insert any circuit (no cycle)
Circuit A can insert circuit B as a subcircuit, and B can carry its own hierarchy. The only limit is recursion: the insert is refused whenever it would make a circuit contain itself, directly or through a chain. This keeps the flattened netlist bounded.
Reuse your own subcircuits
A circuit can insert additional instances of a subcircuit it already owns. A parent with a Sub A can drop a second Sub A next to the first, so a block designed once serves every place it is needed within that parent without duplicating the design.
What is blocked
Two cases are refused. First, recursion: a circuit can never contain itself along any chain. Second, a sub-circuit may not insert anything at all — while you edit a subcircuit, Insert and New sub-circuit are disabled, so nesting stays one level deep from each context. Attempting either shows an explanatory flash.