My thoughts have been along these lines.
ContentLister needs to be the UI for paging/rotating/zooming/tabbing.
It has a plug in capability for: PDF, DJVU, HTML, TXT, File Selection (existing content lister function), etc...
You launch one app and it loads shared libraries as needed to render content. Content is tabbed.
The new app has a concept of "session" which is persistent. The page image cache could indeed be part of this persistent session state. But for file formats such as DJVU they can re-render a page faster than you can read it from the iLiad's slow storage.
The plugins would self configure via a defined API call: extensions, icons etc...
One big help on startup time would be to shoot X and use Pango/Cairo in a direct frame buffer mode. This would also reduce memory foot print in the new ContentLister and reduce screen update latency.
I would also eliminate the existing UDP service for erasing the screen. I'd just have ioctl calls into the kernel, extending /dev/fb0 sounds reasonable to me (I suspect it already is). One less service to start, one less set of sockets to open in each app, way less overhead in the communication of the erase requests.