As part of #30777, Cheryl Sabella listed Variables defined for a tab page, and the use thereof, in the docstring for the tab page. This revealed some anomalies.
Duplicate: font_name is defined on font and highlight pages. The first StringVariable should be attached to a widget before the name is rebound. We should investigate after there are tests for the two pages.
Unused: for anything deleted, make sure that there is no corresponding trace function left.
binding_target (keys) sounds like something that was never an external option but just an internal implementation detail; delete.
encoding (general) *is* an external option, but I believe used only by 2.x. Recheck (in config.py also) and probably delete.
user_help_browser and help_browser (general) may have once been options. We now use the system browser, which, at least on some systems, users can set. Delete.
After wresting with a test for #30870, I am not sure we will ever have the full tests I would like. Anyway, I concluded that the replacement of font_name is a bug. It did not matter because all pages are created before configuration is read. If any of font_name, font_bold, or font_size are changed, set_font_sample is called to define a new font and reset the fonts for the samples on both font and hightlight pages. I checked that this still works.
I convinced myself that the 3.6+ dialog cannot change 'encoding' in userCfg.