Here's the results of the dig, cycle avoidance indeed seems to be the theme:

7936eb95
3d96a4aa
33e1dac4
8b54ec9f4

If it fair to say that seeing as we can't proceed here without the companion, we are right to force it, and any ensuing cycle isn't our fault? Or would potential cycles have already been flushed out during typechecking, so we're safe here? I'm lacking in intuition in this area.