I know pipe will create subshell.
I test $BASH_SUBSHELL
and $BASHPID
, and find $BASH_SUBSHELL
doesn't increase in pipe
echo $BASH_SUBSHELL # 0
echo $BASHPID # 8347
echo $BASH_SUBSHELL | cat # 0
echo $BASHPID | cat # 9727
(echo $BASH_SUBSHELL) # 1
(echo $BASHPID) # 9778