>"why system variables change randomly without notice?"
Variables change if the user start the process to do *whatever*
For example PICKADD,
you can switch your acad profile, the other profile can set pickadd to another value.
you can change the setting by wild clicking in your properties palette, because there is a pickadd toggle button.
you can start a custom program extension, lisp, macro, script, where a change-pickadd statement is inside.
It is really rare that Acad change these settings without your command.
>"Since there are so many SVs, it's impossible to figure out which one has been changed automatically."
In this case it isn't important, pickadd is stored in your profile and you should have a backup of your profile.
Delete the "current" and import the backup.ARG, all the profile stored variable are back to your standard.
Expresstool SYSVDLG can also be a good helper for more than profile stored sysvars.
SYSVARMON, if you know which sysvar you want to monitor.
>"And there is no logic hints guiding the user to figure out the problem"
The first where i would start the search in this case is OPTIONS dialog, and for "selection" Questions, the selection-tab.
But you are right, the only way is learning.
Except: If you know keyword, you can search for commands and variable in commandline (depend your CL search settings)
Selection and Pick (because pickadd is just for 'single' selection mode single= one PICK object selection.
Take acad standard profile, or perhaps your own too, and type in commandline *pick*
or for testing *layer* .. by this way i find often the name of commands an sysvars i am searching for.
Command: *pick*
>"except asking here."
This is the 3rd way, the 1st and the 2nd is to search with search-engine of your help[F1] and www.
Most of them are answered then before you start a new thread if it is a usual thing like pickadd.