I wrote:
> Hmm ... this doesn't really feel cleaner to me, although I'm not sure
> why not.
Oh, I thought of a more concrete point: InRecovery is inherently a
system-wide state, but XLogInsertAllowed is *not*. While we write
the EOR checkpoint, we really want only the bgwriter to be authorized
to write WAL, but the scheme you propose would effectively authorize
all processes during that window.
regards, tom lane