I have tested this patch and love it. I think it is a good way forward
if there are no great use cases of A_N_D's with locals. Yes, it's not
perfect. Yes, later auto can still clobber earlier manual, but at least
the most natural way of a shell func trying to not muck with the global
namespace (namely "local" or its equiv.) also protects $nameddirs. Let's
not let perfect be the enemy of better.
I also love Mikael's idea to make completers specifically less frail.
If completers already had this hardening, I'd most likely never have
tripped on this, "unsafe" though it may be. I haven't heard a great
reason to not do both. As Mikael mentioned, widget pkgs/highlighters
or etc. could also cause trouble.