since it (they) are so important to the function of the sketches, and information on it (them) is rather vague.
But they're NOT important. Important options show up in the menus of the IDE. preferences.txt holds the things that the IDE "remembers" between invocations (like which sketch you're working on), and it holds settings or a bunch of UN-important options that the IDE designers implemented but left out of the actual IDE because "too many options make a program confusing" (which is quite true.)
How they are created!
They are written whenever the Arduino IDE exits (perhaps other times as well, like if you switch sketches.)
What happens to them!
They are read by the Arudino IDE when it starts up, and used to set various internal parameters.
Where they are stored!
(operating system dependent.)(<username>/Library/Arduino on my Mac.)
How they can be modified, if user finds it necessary!
You can modify them with any plain-ascii text editor, but be sure that you don't have the Arduino app open at the time or it will be overwritten when the IDE exits.
What effect they have on the whole operation!
In addition to remembering options that have been set in the menus that DO exist (bit rate for the serial monitor, etc.), it holds settings for various options that we're important enough to have menu options. Like, oh, the various colors used in the editor window, and the font used on the buttons. I couldn't find ANY options that actually affect the "function of sketches." (it MIGHT have had an "extra options to give the compiler" preference. But it doesn't.)
The items in preferences.txt are supposed to have pretty obvious names, and have pretty exact correspondence to variables in the SOURCE CODE of the ide (which of course you can download and browse.) I think the basic idea is that if you can't read the source code, and can't guess what the preference variable name might mean, then it's something you probably shouldn't modify unless you've been told to do so by someone who has read the source code.
The most useful thing to change IMO is to make the line that says:
This will change the amount of output from the compiler that is copied to the cconsole window of the IDE during compiles.