OK, I think the solution is that (find-system name nil) should not cache negative results, unlike (find-system name t).
A new fallback case to the (return (cond ...)) of the final find-system method could use (return-from find-system nil) to short-circuit the caching. Zach, does that solve your issue?
Of course, I'm wondering: why don't these resolve-dependency-name calls cause their respective systems to be installed by your s-d-s-f hook before they return nil?
OK, I think the solution is that (find-system name nil) should not cache negative results, unlike (find-system name t).
A new fallback case to the (return (cond ...)) of the final find-system method could use (return-from find-system nil) to short-circuit the caching. Zach, does that solve your issue?
Of course, I'm wondering: why don't these resolve- dependency- name calls cause their respective systems to be installed by your s-d-s-f hook before they return nil?