There are quirks, sure, but it's actually designed for asset caching, unlike localStorage
You really need to plan ahead carefully if you're using the appcache, which I think changes the definition from "a nice tool, with some quirks" to "a complicated feature that you have to understand completely before implementing."
With that in mind, I think bootup.js is an interesting alternative if you can work around its other deficiencies.