PrintWriter lógica de autoenjuague desconcertante

public PrintWriter (OutputStream out, boolean autoFlush):

out - An output stream
autoFlush - A boolean; if true, the println, printf, or format methods
will flush the output buffer

public PrintStream (OutputStream out, boolean autoFlush):

out - The output stream to which values and objects will be printed 
autoFlush - A boolean; if true, the output buffer will be flushed 
whenever a byte array is written, one of the println methods is invoked, 
or a newline character or byte ('\n') is written
Cuál fue la razón para cambiar la lógica de autoenjuague entre estas clases?

Porque siempre se consideran idénticos, excepto para los momentos de codificación y "autoflush" sin vaciar enprint() apenas corresponde al principio de menor asombro, ocurren errores tontos:
Creé un PrintWriter con autoflush activado; ¿Por qué no es autoflushing?

Respuestas a la pregunta(2)

Su respuesta a la pregunta