Can't we just move this to postmaster.c ~ line 850 ?
This seems no different than wal_level and summarize_wal having a co-dependency such that intermediate invalid states must be allowed to exist so long as what the server ends up running under is valid. max_slot_wal_keep_size is sighup just like summarize_wal (and IsBinaryUpgrade behaves like a postmaster GUC)
I suppose the answer is because sighup settings seemingly do not belong here...
./psql postgres psql (18beta1) Type "help" for help.
postgres=# show summarize_wal; summarize_wal --------------- on (1 row)
postgres=# show wal_level; wal_level ----------- minimal (1 row)
Which is an impossible combination to begin in but is allowed if you change only sumamrize_wal to on and perform a reload.