Clear all signal->scope tracking for the given scope key.
Called after the scope body executes, so old deps from a previous run are
replaced by the new deps registered during the just-completed run.
Retrieve the cached View for a scope being skipped, advancing the remember-slot
cursor so sibling scopes remain consistent. IDs are self-contained in the cached
View (packed scope-local IDs), so no global ID advance is needed.
Record that the current composition scope (if any) depends on signal_id.
Called from reactive::register_signal_read.
Records against every scope on the stack so ancestor scopes are dirtied
when a signal read only inside a nested scope changes.