/proc/がmmapで読めないのは予想していました。

.datや.htmlの読みこみにmmapを使わなかったのは、
末尾に'\0'や'\n'を加えてそのまま使う事が出来ない、
(別のバッファにコピーしたら、OSのバッファを介してreadするのと同じ)
結局全体を読みこむので、デマンドローディングの恩恵がない、
何度も走査して(.datが4回、.htmlが2回)いる上、
I/Oよりも、変換・圧縮によるCPU負荷の方がずっと大きい、
などが理由です。
もちろん、自分がテストしにくいというのもあります。