In this commit: http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/session.c?rev=1.238;content-type=text%2Fx-cvsweb-markup ... the USE_PIPES code was unconditionally turned on with an explicit "#define USE_PIPES". This makes it impossible to turn off via the normal configuration mechanism (configure.ac). Actually, it might be a good idea to add a configure option for this (configure --with-pipes), since there are tradeoffs involved in its use: the shutdown-read/SIGPIPE behavior verses the problem of some bash versions reading .bashrc and some not.
We use pipes in session.c to support the "half-closed for reading" extension (see http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/PROTOCOL?rev=1.12;content-type=text%2Fx-cvsweb-markup;ln=1#l34) since socketpairs don't reliably provide the signalling that we need on all OS's. bash's behaviour has been incorrect pretty much all along; pipes vs. socketpairs has been a per-platform decision in OpenSSH for some years. IMO it would be better to fix bash.
It looks like most Linux distributions are shipping fixed bash by now, so I'll close this bug.
Move resolved bugs to CLOSED after 5.7 release