This change was actually made in Juju 2.5.0, although I did have to dig to see when the change occurred. It is in the 2.5.0 Release Notes.
This was changed to stop the stampeding herd problem that would occur when the controllers were restarted.
In Juju 2.8.0 another change was introduced to support the sort of use case you are talking about. There are a number of charms in OpenStack that need coordination when the machine reboots. From 2.8.0 and on, when a machine with a unit is restarted, the start hook for the unit is called. This only happens the first time the unit agent is started for that agent.