I used OneDrive, and especially the file on-demand (all files on server visible in explorer but only downloaded when needed) feature a lot
You can continue to use OneDrive. I use the OneDriver client and it works really well - your drive appears just like a local drive, but files only get downloaded when you try to access them. Once downloaded, it gets cached locally and is available offline, and is kept in sync automatically. Other cloud providers should have similar FUSE clients available.
What are best practices for managing apps?
Best practice is to stick to packages provided by your distro's repos. Flatpak should be your second option if you can't find your app there, and AppImages should be your third option (since Flatpaks are superior as they can share dependencies, unlike AppImages). Avoid Snap. In fact, avoid any distros that even use Snap (*buntu). Also, if you're on a Debian/Ububtu based distro, avoid adding PPAs (thirdparty user repositories) as far as possible, as these can cause dependency issues and may cause pain when you upgrade your distro.
Is there a GUI (I know) way to see all applications
That should be provided by your distro - Gnome-based ones have "Software" and KDE-based ones have "Discover".
I've used onedriver previously, or rather I do use it on my backup machine. While it works well what I'm missing is a progress indication for the download of files, I occasionally work with bigger video files f.ex.
Also an option to keep directories synced permanently to the device would be great.
In OneDrive you can check a box in the context menu to 'make files available offline'. It keeps the file/directory synced and available offline. This is again useful for bigger projects. I could of course move those to a temporary location on disk but I do like the set and forget nature of working in automatically synced directories.
I assumed that's best practice, thank you. What I find overwhelming is the amount of choice. Which is a general Linux "problem" I suppose. Yes, it's possible and elegant to manage everything through the package manager and the default repos. But if I search for a specific program, like f.ex. a clipboard manager, I might just get recommended something that is not there. And all of a sudden I have an appimage. Or the nextcloud client for example, it's on the flathub but only the appimage supports the above file on-demand feature.
Btw, how can I be sure that software from the flathub is kept up to date? My understanding is that it's often community maintained?