It kind of undercuts the argument, because the dynamic allocator basically just uses mmap as well.
(Some allocators, like glibc may also use brk, but it's possible to write a fully functional allocator with only mmap).
(Some allocators, like glibc may also use brk, but it's possible to write a fully functional allocator with only mmap).