what's the benefit of this over caching the HTML with one of the myriad HTTP/HTML caching methods?
It seems to be intended to snapshot single page applications in "the middle" of operation, which the browser will not HTML cache (as the base page HTML remains all the stuff before JS loading and operations happened). Instead of snapshotting the application's own internal object model and reusing that on offline wakeup, this just snapshots the raw DOM. For certain types of SPA apps this might be a quick, easy, and lazy solution to offline wakeup.