Ah, I see my error was assuming that scandirs were static for the life
the current boot, rather than having service directories symlinked in.
Both are possible, really. There's nothing that enforces a policy
When s6-svscan starts, it boots up s6-supervise processes on every
service directory that is already symlinked in the scandir, but it will
rescan the scandir and update its list of supervised services on receipt
of a s6-svscanctl -a.
s6-rc-init uses that feature: you can start with an empty scandir (or a
scandir that only contains a few minimal services that you don't want
to manage with s6-rc), and it symlinks the longruns into it (with a
./down file) then triggers a rescan. Services not managed by s6-rc will
be untouched; longruns managed by s6-rc will be picked up by s6-svscan,
start as down, and will possibly be brought up by later "s6-rc change"