Por que uma saída não pode ser seguida por uma entrada e vice-versa?

De APUE

Quando um arquivo é aberto para leitura e gravação (o sinal de mais no tipo), duas restrições se aplicam.

• A saída não pode ser diretamente seguida pela entrada sem um fflush, fseek, fsetpos ou rebobinação.

• A entrada não pode ser diretamente seguida pela saída sem um fseek, fsetpos ou rebobinamento, ou uma operação de entrada que encontre um final de arquivo.

Por que "fseek, fsetpos ou rebobinar" nos dois casos?

Por que "uma operação de entrada que encontra um final de arquivo" no segundo caso?

Obrigado.

Uma pergunta semelhante para a API do Linux é`Read ()` pode ser diretamente seguido por `write ()` e `write ()` por `read ()`?

questionAnswers(1)

yourAnswerToTheQuestion