If an update does something that breaks your startup sequence it generally is much better to find out about it right away than it is to find out about years later in the middle of the night when you get a forced reboot due to hardware or power issues, and find that things are broken and you have no idea which of a dozen allegedly minor updates broke it.
Can you also detect whether a program will loop forever?
This apps are called static program analyzers and some can prove totality of code.
Assumed the current state of knowledge about our universe no program will loop forever.
But maybe our universe is a kind of infinite loop by itself. Who knows.
An update to foo changes what happens in that undocumented or undefined case, and with the new behavior my application does not start correctly.
There is nothing the package manager can do to ensure that this does not happen because there is nothing wrong with anything the package manager is managing. The bug is entirely in my code. All the update did was expose it.
The question them is when will that now exposed bug actually get hit, so that I become aware of it and fix it.
The purpose of the reboot is to make sure that exposure happens at a time when it will not cause much harm and I will not have a lot of trouble finding it.
Then I laughed some more.
Liking the advocacy though
I must admit that syspatch has saved me a ton of time.