I imagine the authors of those applications might get upset if we create something outside of the command that controls what the command does. Perhaps the idea here is not quite as bad as that as applications could still override the options by mentioning each EXPLAIN option in the command they send to the server.
I admittedly haven't tried to write an explain output parser but I'm doubting the conclusion that it is necessary to know the values of the various options in order to properly parse the output.
The output format type is knowable by observing the actual structure (first few characters probably) of the output and for everything else (all of the booleans) any parser worth its salt is going to be able to parse output where every possible setting is set to on.
I'm inclined to go with having everything except ANALYZE be something that has a GUC default override.