IMO we don’t “need” anymore such thing as automatically removing unused materials (on the user POV at least, maybe it’s needed under the hood).
Most of the time, people don’t expect any data loss when saving a file. They expect a data to be gone only when they deliberately asked for it.
And in the meantime, when we want to delete such data, we can’t do it in a simple & intuitive way.
In other softwares, if you want to delete something, you just select it and press Del or right-click → Delete. If it’s some important data, or if it’s used somewhere, there will be a warning prompt, sometimes even an option to choose a replacement data (like in unreal engine).
But in Blender, this doesn’t exist. You have to find a place where the data has an X cross icon and Shift click that icon (how unintuitive is that ? And you can’t do this for several data at once), or open the outliner, play with the display mode and spend your time on searching your data and managing it the hard way, still dealing with non-standard behaviors and denominations.
I don’t know why Blender works that way. I’m sure there is/was a reason.
If it’s technical, is there a way to get around those issues and obtain a more intuitive and intended behavior?
If it’s a decision of “how blender should work” that have been made before, I think it should be reconsidered with today’s standards: people complain about this, no matter if they are new users or old timers. It’s always a pain.