What attack vector does this help to frustrate? Does it help prevent "hollowing out" a compromised process?
The primary value I can see in it is extending something similar to w|x protection to JITs and interpretors. The article does say that it was originally for Chrome
I'm having a bit of a problem with the dlclose() scenerio, which means that dynamic libraries space (ro segments, such as .text) can never be recycled within a process. This is only for the loader to seal all ro segments. For a jit probably not, because jit wants to recycle gone code, or it will grow forever.
dlclose is only when invoked with RTLD_NODELETE
dlclose is impossible to get right when you also combine it with certain common features like thread-local destructors. For this reason most common libraries are using -z nodelete.