The key is to satisfy both novices and experts....
Provide a good default interface for novices and also a way for
that novice to become an expert without too much trouble....
That is why Customize should not only do its job, but make
it easy for a person to learn.
I don't agree with some of the detailed proposals you've made - for example,
I agree with Kim that your history-of-values display would be overkill and
confusing.
However, I do agree that Customize should do these things, in order of
priority:
1. "Do its job", as you put it:
- make it easy for anyone, including a non-Lisper, to customize options
- provide an easy-to-use options browser
2. Facilitate learning more about Emacs - Lisp, in particular.
#1 is far more important than #2. #2 should never interfere with #1. In
particular, the UI should not be made more complex in order to promote #2.
But Customize should not act as an obstacle to understanding what's under
the hood - it should facilitate that learning, but not require it or impose
it. Your analogy with menu items that show corresponding key sequences is a
good one. Simple information bridges like that help users be more effective.
As I mentioned long ago, I think that simple links in Customize to a) the
current Lisp value of an option and b) the defining source code, as are
available in `C-h v', would be unobtrusive and quite helpful.