I wonder if something like CURRENT (i.e., the search path at function creation time) might be a useful keyword addition. I can see some uses (more forgiving than SYSTEM but not as loose as SESSION), but I don't know if it would justify its presence.
I realize now this is exactly what SET search_path FROM CURRENT does. Sorry for the noise.
Regarding extensions installed in the public schema throwing a wrench in the works, is that still a problem if the public schema is not writable? I know that that's a new default, but it won't be forever.