Making syscalls like write() every time you want to send even a character of output down a stream is much more latent than just sticking bytes in a buffer.
In general, the only time anyone should use unbuffered output is when there’s a real person consuming it - for example, when you’re prompting a user for feedback or input.