Da der Webserver einen internen Puffer hat, um nicht jedes von PHP oder anderen eingebundenen Modulen erzeugte Byte einzeln zum Client zu befördern, muss man den Webserver explizit bitten, wenn man dies doch haben möchte.
Da habe ich andere Erfahrungen gemacht, nur nicht grade mit einzelnen Bytes. Wir haben wohl aber beide Recht und Unrecht und wenn ich möglichst sicher sein will, daß es auch gestückelt rausgeht, dann verwende ich auch flush().