http://www.stolyarov.info/books/pdf/progintro_e2v2.pdf
В главе 7.4 про захваты на уровне файловой системы, автор отмечает, что
надёжно корректно ничего из штатных средств ОС не работает. POSIX
захваты привязываются к файлу↔процессу, и если кто-то в процессе закроет
файл (например это сторонняя библиотека может быть), то захват будет
снят. BSD flock в разных ОС может быть реализован через POSIX lockf, и
поэтому заранее вы не знаете какое именно будет поведение у flock-а под
другой ОС/ядром.
Я когда читал про всю эту тему захватов при разработке goredo, тоже
сделал такой же вывод -- всё плохо непредсказуемо.