Firefox extensions run in a privileged context. They essentially are not really different from components of firefox itself.
Firefox components can obviously access the filesystem. So can extensions.
An extension in itself is not any more a security hole than firefox itself.
> Seriously, stop treating the browser as the OS+desktop.
While I agree with you there, what's needed to get to that point would be browsers actually talking to the native environment more. Pipes, sockets, filesystem access (chroot-style) even limited process launch capabilities.
If web or extension APIs allowed that it would be far easier to integrate with native instead of having to build it straight into the browser.
But that just addresses the "app" kind of extension.
Other extensions instead customize the web browsing experience. For example if you have a file form and want to do automation (filling in the right files?) then you already need access to the file system. This has nothing to do with native apps and yet needs access to native resources.