I remember a javascript library where the was a function that returned, according to the documentation, “a color”. Did it return an object with 3 fields? Were those fields RGB or some other color scheme? Is it a string encoding a color? What format is that string? None of these questions could be answered without just running the code, and analyzing the object you got back.
Considering std::cout should only directly be used when you are too lazy to place breakpoints, I totally get the decision to auto-flush.