I think dynamic reconfiguration leads to less runnable software - make everything as immutable as possible and it’s easy to reason about.
If your application is a client-side GUI you may not want to restart it on reconfiguration. This applies to other things as well: think about having to restart your reverse proxy/load balancer each time you add a new route, or rebooting your OS each time you reconfigure a systemd unit, or reinitializing your embedded HW because something changes. The possible incarnations of SW are very much varied, and not everything can be solved in the same way.