Stupid. Forgot that if creatable_amount() is 0, get_ingredients() is empty. Sorry for the waste of time.
Also almost commented earlier about how a master relay script could cause infinite recursion if it called visit_url(), but caught myself in the nick of time. I'm definitely out of the swing of things.
Bale: no, making a predictive item-acquisition script, which includes adventuring as a possible acquisition method, even recursively for ingredients. Why do I subject myself to such time-suckers?
On that score, an offshoot of has_goal() is underway for ZLib: float has_item(location).