HCA saves all state information so after the re-boot, it was pretty much in sync. Anything out of sync (like a light switch that was activated during the 45 second reboot process) re-synced automatically once that switch was operated again. I never request all device status reports for this reason. Do other controllers behave differently?
'Pretty much in sync' isn't good enough. CQC takes the approach that it will NEVER tell you anything that it cannot prove to be true with a high degree of confidence. Anything else is unacceptable, IMHO. When automated decisions are being made based on the status of devices in the network, any status that cannot be confirmed with a high level of confidence should be reported as in error.
In CQC, when it starts up, or when it ever loses connection to a device, puts the driver into offline state. It will not come back online until it can connect positively to the device. When it device seems to be responding, it puts all the fields in error state and will get all their values proactively before it comes online.
With a system like Z-Wave or X-10 or UPB, i.e. a system in which there is more than one device so there's not a strict ok/not-ok state, the driver will come up and leave those fields whose values it couldn't validate in error until it can do so, so that no decisions will be made based on them until their values are known.
It does use async notifications from devices where that's the way the device works, but it will still proactively get all values updated in driver memory before it comes online. And, the driver will periodically ping the device, to make sure it's there and to make sure that no aysnc notifications were missed.
This is another advantage that ethernet has. If the connection between me and widget X is lost, even if I'm not there to see it, I'll know that. With most other connection types, serial in particular, it's perfectly possible for the user to unplug the cable for some reason, to move the device or get behind it or whatever, and then plug it back in. The control system has no idea what happened during that period. Only if it pings on a fairly regular basis can it catch that this has happened and reset and start proactively getting status again.
I honestly wouldn't want to use a control system that takes these issues less seriously than that. Some of the above is orthogonal to UPB really, I'm just addressing a general issue since it came up.