Ho letto che quando si reindirizza stdoute si stderrutilizza lo stesso file 2>&1, di stdoutsolito viene bufferizzato mentre stderrnon è bufferizzato.
Se viene scritta una linea molto lunga stdout, che richiede due flush separati del buffer, potrebbe accadere che una linea da stderrscivoli nel mezzo? Qualcosa come questo:
stdout: aaaaaaaa.....really long line......aaaaaaaaaaaa<newline>
stderr: eee<newline>
combined: aaaaaaaaaaaaaaaaeee<newline>
aaaaaaa<newline>