Я использую Python 2.7, и у меня нет таких же результатов:
>>> import os, fcntl
>>> fd = os.open('/tmp/test', os.O_CREAT|os.O_RDWR, 0777)
>>> print fcntl.fcntl(fd, fcntl.F_GETFL)
2
>>> print os.O_CREAT|os.O_RDWR
514
>>> print fcntl.fcntl(fd, fcntl.F_GETFL)
2
>>> print os.O_CREAT
512
>>> print os.O_RDWR
2
Так что только флаг O_CREAT больше не здесь. Состояние файла после открытия - только O_RDWR.