I can't find any documentation indicating that this is correct behavior. I've verified this behavior on bash 4.2.25 and 4.1.2. Those are the latest to which I have simple access. Much appreciated if anybody has an explanation for why the conditional changes the behavior of the preceding subshell.
# ( set -e; false ; echo bye )
# ( set -e; false ; echo bye ) || echo "failed"
bye
#
thanks, Brian