Yes that is what IndexedDB is for. We are working on BrowserCouch, a JavaScript library to "emulate" CouchDB on top of IndexedDB.
The big thing none of the HTML5 offline primitives provide is synchronization. Local storage is great, but in the HTML5 world it is still the application developer's responsibility to take data from the server and persist it to the client. For very simple use cases this is fine, but as soon as you want to allow collaborative edits to large data sets when users are disconnected, you'll end up implementing something that looks like CouchDB anyway. If you use the real thing (or BrowserCouch, when that is ready) you get synchronization for free.
The big thing none of the HTML5 offline primitives provide is synchronization. Local storage is great, but in the HTML5 world it is still the application developer's responsibility to take data from the server and persist it to the client. For very simple use cases this is fine, but as soon as you want to allow collaborative edits to large data sets when users are disconnected, you'll end up implementing something that looks like CouchDB anyway. If you use the real thing (or BrowserCouch, when that is ready) you get synchronization for free.