Either EXECIGNORE should block execution or type -a should indicate that its argument matches a pattern in EXECIGNORE.
I vote for the latter so a user isn't surprised by execution without a means to identify where it came from. I would also prefer another name. If the purpose is to reduce completion clutter, then the variable should be named something more specific like COMPLETIONIGNORE rather than its seemingly more general current name.
I vote against blocking execution since it would enable bypassing earlier parts of PATH. For example, in situations where PATH ends in dot, malicious programs in the current directory could be executed in place of their normal counterpart earlier in PATH.
--
Visit serverfault.com to get your system administration questions answered.