I just discovered this as well kind of ironic considering the time I had the RPI, but before the RPI had it's own keyboard and monitor, and due to some recent purchases of other mini board computers it been dispatched into the darkest of closets.
And while i haven't been using it a lot since, the part I missed was playing around with video core and in particular GLES.
So when I begun looking around I found this and decided to try it out...
And it did exactly what I needed although some what slow, so I spent some hour to optimise the "TakeScreenShot" method somewhat (I still haven't really bothered change the bounding box code other than rewriting it to use 32 bit moves) as I rewrote the actual "blit" loop to use 32 bit as well, so far I got it to be about 2-4 fps faster depending on circumstance.
Still playing around with optimisations though....
Oh and btw there is no need to repackage the pixels for the 555 format, just set the redShift/blueShift/greenShift accordingly on the serverInfo.
This is an recording I did of my tweaked version (I also wrote a sysvinit script that launches the VNC server at boot time), should probably modify it some to not use CPU unless there is a client attached etc too, but right now its just been quite low hanging changes.