O pano de fundo é que você precisa
#include <fcntl.h>
para obter os sinalizadores relacionados a open() de qualquer maneira, e deve haver uma chance de não poluir o espaço de nome mais do que o necessário.
Se open() estivesse em unistd.h , esse arquivo precisaria de #include fcntl.h e isso não é desejado como padrão.
O arquivo unistd_64.h é um arquivo de inclusão interno do fornecedor não oficial e o conteúdo deste arquivo não está sujeito ao padrão POSIX.