Na sua segunda referência, onde diz
The memory allocator gets a big chunk of memory (say, 4 pages, or 4 * 4 KiB) and divides this into much smaller chunks
"o alocador de memória" não é o kernel, mas as rotinas libc como malloc.
O kernel aloca a memória ao processo em pedaços de tamanho de página. O malloc acompanha as partes usadas e não usadas dessas páginas conforme o aplicativo as solicita e as libera.