Because there's lots of more complicated uses too. For example, maybe the data isn't read-only. Then you need to consider how to handle writes. Or it might not be a simple data file. For example, I know an application that uses finite automaton data structures that weigh in a hundreds of MB. The whole data structure is dumped to disk for storage between runs. When the data structure is loaded into the applications it uses an mmapped region.