Firefox's userspace is webpages, not extensions. Extensions before 57 are like out-of-tree kernel modules. Extensions after 57 are a lot more like userspace, though!
>Extensions before 57 are like out-of-tree kernel modules
Its not that you shouldn't compare firefox api to unix userspace, but that firefox's api equivalent in unix is not userspace, but out of tree extensions.
In which case firefox isn't at fault for breaking api promises it never made; extension authors are at fault for not keeping pace
And firefox never promised you, the user, that the extensions would work in all versions of firefox; rather the extension author (may have) promised that, when they shouldn't have (because they weren't in a position to uphold it).
If the firefox api isnt the equivalent of unix environment, then firefox isn't wrong to break extensions. Its just part of the natural lifecycle of the application, unless firefox changes that stance, and does make extensions part of their promise.