Flatpak steam can do all that. You just have to learn to control the flatpak sandbox. There are CLI commands of course or you can install Flatseal which is a real nice gui that lets you control the sandbox for each individual flatpak app. https://flathub.org/apps/com.github.tchx84.Flatseal
Just add whatever drive/directory/mount point in the filesystem path for Steam in flatseal and Steam can see it.
Not if you install Firefox from Flatpak. ᕕ( ᐛ )ᕗ