Perhaps I'm mistaken, but I recall that there is a way to tell the browser to 'flush' the application cache, but only once the user has loaded the old version of the application anyway; in other words, you can tell the browser that the next time they load the page, they should load the new version. Which seems odd.
The only way to force a reset is to query the manifest and receive a status not equal to 200. If your application is stuck to an old version, this is the only way to update it.
And Firefox is considering the manifest as a normal cache so you need to put a lot of http headers to prevent any normal cache otherwise Firefox will never check any updates.