This question has shallow and deep answers.
The shallow answer is, the rulebook mechanism is designed to let you manipulate a rulebook, run it, and then reset it. That’s a procedural rule. Allowing a permanent change (in addition to procedural rules) would be more complicated. Possible, certainly, but extra work.
The deeper answer is, this sucks because this mechanism is slow. (Making it more complicated would make it lower.) This is why procedural rules are now deprecated. So take a step back.
Any “now”-style change can be recast as a rule replacement with a condition. E.g.:
When the foo scene begins:
now the bar rule is not listed in the baz rulebook.
The bar-prime rule is listed instead of the bar rule in the baz rulebook.
This is the bar-prime rule:
if the foo scene has not begun:
follow the bar rule.
It’s more verbose, but it’s closer to the I7 principle of having conditional declarations where possible. (See also, “why can’t I write ‘now understand “x” as Y’?” “because a conditional understand is better.”)
It’s also much easier to compile into efficient code.
The drawback is that if you want your rule changes to achieve combinatorial explosion, you need to do much more work. (You have to write out all the combinations.) But as Ron said, rulebooks aren’t the only way to do that, and probably not the best way either.
As you’ve probably seen, I proposed a cleaner syntax for this on the uservoice forum. For this example, it would be:
The bar rule doesn't apply when the foo scene has begun.
Still a conditional declaration, with the same meaning, but it avoids having to declare the extra rule.