Here's one interesting aspect of the off/online bits that wasn't immediately obvious to me. A computer can't really know if it's "online" -- an IP address, or even connectivity to the internet doesn't guarantee that its server can respond -- and for an app that "just works offline" all you care about is whether the server can respond. So the offline cache works like this: you can't tell programmatically tell whether you're on or offline unless your server exposes some sort of RPC for your app to test via AJAX. Once you've hooked your app into the offline cache, all page loads server from the cache and then Gears (via the browser, of course) relays the request for the actual content. (There's also a lower-level API available that lets you control directly when to fetch a resource.)
The final cool thing to highlight: yes, you can use Greasemonkey to inject Gears calls into sites that don't already support it. (Boodman is one of the Gears developers...)
I've been working on (and finding Gears bugs with) a Gears-enabled release of lmnopuz, but it's blocking on some other changes in lmnopuz and all of that is blocking on a few other projects that are more urgent.