Any application you've got assumes authority to access everything, and thus just won't work. I suppose it's possible that an OS could shim the dialog boxes for file selection, open, save, etc... and then transparently provide access to only those files, but that hasn't happened in the 5 years[1] I've been waiting. (Well, far more than that... here's 14 years ago[2])
This problem was solved back in the 1970s and early 80s... and we're now 40+ years out, still stuck trusting all the code we write.
[1] https://news.ycombinator.com/item?id=25428345
[2] https://www.quora.com/What-is-the-most-important-question-or...
Isn't this the idea behind Flatpak portals? Make your average app sandbox-compatible, except that your average bubblewrap/Flatpak sandbox sucks because it turns out the average app is shit and you often need `filesystem=host` or `filesystem=home` to barely work.
It reminds me of that XKCD: https://xkcd.com/1200/
That kind of thing (with careful UX design) is how you escape the sandbox cycle though; if you can grant access to resources implicitly as a result of a user action, you can avoid granting applications excessive permissions from the start.
(Now, you might also want your "app store" interface to prevent/discourage installation of apps with broad permissions by default as well. There's currently little incentive for a developer not to give themselves the keys to the kingdom.)
Then again, all theoretical on my part. I keep messing around with Qubes, but not enough to make it my daily driver.
-Access to your private data
-Exposure to untrusted content
-The ability to externally communicate
Then it's not "locked down"
Depending on your security requirements you should have only one or two of those capabilities per VM