Restarts are normal for software updates - so updating HA itself, or installing any new custom integration. There’s no way around the former, and the latter is hard so unlikely to happen.
Changes to integrations, that’s different. UI integrations already don’t require restarts, it’s only the ones that purely use YAML.
As more of those move to UI setup that problem should go away, or as developers decide to add support to reload the YAML. Unfortunately that needs the developer of that integration to want to make the necessary changes - and there’s a lot of integrations for not a lot of developers.
That’s slowly happening over time anyway - I remember when almost any change needed a restart. There’s still a way to go, but it’s happening.
Yes and no. With cernain approach it’s possible to achieve modularity where only restart of selected modules is needed while the rest of the system is not influenced.
There were several discussions about modular approach in the past.
Not arguing against it’s hard task to accomplish in case of architecture manifested by HA
Not requiring a restart is unlikely to ever exist for changes to core or HAOS. The reason being that it is virtually impossible to know every side-effect of an update meaning that by not restarting there may be some random odd behaviors.