Errexit APPEARS set in subshells

Hi there,

Everyone knows that errexit is NOT inherited by subshells. But does anyone know why errexit still appears as set with set +o ?

The following example highlights the fact that errexit appears set in a subshell ( set +o ) even though it's actually unset (it does NOT exit with false).

$ cat /tmp/test
#!/bin/bash

set -o errexit

_f() {
        set +o | grep errexit
        false
        echo "I'm still here!"
}

_f "$@" && true
_f "$@"
$
$ bash /tmp/test
set -o errexit       <-- errexit appears set         (unexpected)
I'm still here!      <-- but it's actually unset      (expected)
set -o errexit       <-- errexit appears set          (expected)
                     <-- indeed it exited with false  (expected)

Thanks for sharing ideas.

Regards
Santiago