yes(1) needs error handling to avoid spinning
From the Joyent bug report:
yes(1) currently ignores all return values, which with a somewhat contrived example makes it spin indefinitely
#!/bin/sh trap '' PIPE mkfifo foo yes >>foo & head -n 3 foo
Whilst contrived, I did hit this problem with the pkgsrc pbulk software, which forgot to reset a SIGPIPE handler for child processes, resulting in a yes(1) call in a configure script hanging the entire build.
Both BSD and GNU yes(1) do not have this behaviour, so I think it reasonable to fix this.