For specifically CPython, for buffered IO seek calls the _io__Buffered_seek_impl which is guaranteed to flush if and only if the whence argument is set to SEEK_END (2)
read with zero arguments calls _bufferedreader_read_all through _io__Buffered_read_impl, which does flush.