Subpixel rendering isn't implemented in the demo but just requires running the calculations three times with 1/3 pixel offsets. It still would only need to read the texture data once. I didn't implement it in the demo because there's no way to ask the browser what the display's subpixel order is. If you're viewing it on an ipad and switch from portrait to landscape your subpixel order changes.
Hinting was necessary back before good antialiasing existed but I don't think many renderers use it now. This technique renders each glyph differently according to its subpixel position - completely the opposite approach to hinting, which snaps features of the glyph to integer positions on the pixel grid.
Consider that each "e" may be slightly differently aligned to the pixel grid though. So using an atlas is lower quality than drawing each "e" from scratch exactly as it aligns to the screen.
LZMA and Bzip2 both get it down to about 3 MB but I'd need to use a javascript decompressor.