Arduino and libserial - strange behaviour

(For the record I'm still also learning so if anyone wants to correct my own interpretation of meaning then go right ahead.)

The only thing wrong in what you say is that flush does NOT add the carriage return/line feed that endl does. To get the carriage return/line feed and force the output to happen now, you need both endl and flush.