mmap is fine when you know the file fits in memory, and you need random file reads/writes of only some parts of the file. It's not magic.
It's also quite hard to debug in go, because mmaped files are not visible in pprof; whe you run out of memory, mmap starts behaving really suboptimally. And it's hard to see which file takes how much memory (again it doesn't show in pprof).