Пятигигабайтный файл на FreeBSD считался за 8 / 6.5 секунд при помощи mmap и fread (fread быстрее!!! вроде бы это бага zfs)
На Ubuntu - за 1.1 / 3.5 секунды (mmap ожидаемо быстрей).
Разница есть, но ИМХО польза от непортируемого mmap при чтении будет заметна в редких программах. Типа загружаем 40 гигабайт, используем 1% из них, и тут же выходим, например багфиксинг алгоритма поиска в B-дереве, с постоянным перезапуском. При записи - не знаю, может удобней-быстрей патчить файлик в памяти.
Файл читался из файлового кеша (проверить без кеша не вышло - или рута нет, или /proc/sys/vm/drop_caches - permission denied в OpenVZ), но подозреваю что без кеша разницы не будет.
Под виндой проверить сложнее. На маленьких файлах не интересно и всё мгновенно, а для больших сходу лень писать 64-битный код для ftell/fread, и лень было узнавать грабли компиляции под 64-битный режим.
Проверил (код по ссылке) на гигабайтном файле, Windows7/Visual Studio 2008:
CreateFileMapping - 0.3 секунды, fread - 3.5 секунд.