As @johnwill1 said, there is a thread where this came to be that might be worth reading.
Obviously, the hub is not going to react to triggers that occur while the hub is down. But a required expression is not a trigger, it is a condition. And conditions should be correctly evaluated in real time. The problem is that under the covers, required expression becomes true as a result of a trigger. That's an implementation detail, though, and shouldn't change the behavior that a condition is real time.
The solution is to evaluate the required expression at system startup, and that's what Bruce gave us. I appreciate that. But having a toggle there for it makes no sense to me. Under what scenario would you NOT want a required expression to work correctly?