Clément Pit-Claudel gave a great answer about why
pulling stuff out of
may not work.
See comment at
Emacs: Stop Cursor Going into Minibuffer Prompt#comment-2734992432
also see comment by bhyde at Emacs's Customization Tutorial#comment-2663524352
the bottom line is that, if you pull out lines from
and change it to
setq, it may not work.
i wasn't too pleased about this. This means, the
is more complex than otherwise
defvar with a User Interface.
on this subject, there's the question about whether emacs's customize system is a good thing. (it was controversial). I think it's a mixed bag.
There's elisp, which is the core of all emacs and all customization. Why should we add a layer? Now, there are 2 ways to do the same thing. Also, the Graphical User Interface layer isn't complete, as not all customization can be done with it. (e.g. hooks, which is rather quite common and basic.) On the other hand, it does provide a explicit structure to declare what variables are user preference related, and with it, a text based graphical user interface.
but, it isn't a full system, and is not required nor enforced in packages. The consequence of this is that, there's inconsistency.
in general, coding in elisp is full of slack. There's no API, nothing is enforced, and you can do something low level or high level or whichever way. This in intentional from rms. XEmacs had packages since 1991 or so. rms refused it, till recently. I think rms believes this shapelessness helps propagate FSF free software. As in, it forces people to dig into code, not a blackbox API.