説明がおかしかった

std::coutも標準出力だね
次のような場合がおかしくなる

int main()
{
std::ofstream fs("test.txt");
std::streambuf* osbuf = fs.rdbuf();
std::ostreambuf_iterator<char> oic(osbuf);

oic = 'a';
std::putchar('b');
}