C89 does have such a requirement, in two places:
Section 5.1.2.3:
"...
- The input and output dynamics of interactive devices shall take
place as specified in 7.9.3. ... or line-buffered input appear as soon
as possible, to ensure that prompting messages actually appear prior
to a program waiting for input.
..."
Section 7.9.3:
"... Furthermore, characters are intended to be transmitted as a block
to the host environment when ... input is requested on an unbuffered
stream, or input is requested on a line buffered stream ..."
So there you go. I don't know about C99, but I do know POSIX/SUS are
designed to be aligned with standard C.
Pietro