My change did cause this state to be retained. I hope this is not a
problem.
Afaik, plugins test if they were disabled before by looking at the toplevel
plugin state, not the per-page plugin state. So the only remaining problem
might be
a) A plugin is disabled but its state keeps being saved. Which is not
ideal, perhaps, but the large speedup of my optimisation seems worth it.
b) A plugin might have been enabled, be disabled, and get re-enabled, and
see old state from before. I don't see how this would be different from
the plugin seeing any other old state, though, so hopefully no breakage.
My optmisation looks a little more risky, but I still hope I can keep it.