Why? It’s not in the spec, how am I, the developer, supposed to know that the browser is being non-compliant?
It's in the spec that the browser is allowed to pick a duration if you don't tell it one, so you know that you don't know how long it is cached if you do not set a header.
Both browsers are compliant. However there is generally no reason to cache a resource with content disposition so it seems sensible for Firefox to adopt this behavior.