Greg Wooledge wrote:
(Wow, how did we get here from "-e does not take effects in subshell"?)
--- because the POSIX spec changed and bash's handling of "-e" changed to follow the new spec. The earlier spec had -e only exit a script if a *simple* (external) command failed. It didn't include builtins nor functions.