Увеличение производительности происходит не из-за того, что страницы предназначены только для чтения или нет. Преимущество состоит в том, что страницы, доступные только для чтения, могут быть разделены между процессами, поэтому вы используете меньше памяти, что означает меньшую подкачку (как в кешах L1 / L2 / L3, так и в крайнем случае на диск).
JIT пытается смягчить это, не бесполезно JITting, а только JITting горячих функций. Это приведет только к небольшому увеличению памяти, поскольку число горячих функций относительно невелико.
JIT-компилятор также может быть умным и кэшировать результат JITting, чтобы его (теоретически) можно было использовать совместно. Но я не знаю, делается ли это на практике.