At first reading I can only add one thing to what Mike has said.
I never advise changing compiler options beyond the "unit testing" stage. Beyond that, for me, they must be the same as in Production.
A person from another team approached me many years ago and explained that a program in System Testing was failing, yet back in the Unit Test set-up it worked, with exactly the same data. Same source. Same data. One fails, one works. That's not computing, is it?
The obvious culprit was compile options.
Now, before Mike has a heart attack, it is not the compile options in themselves that are the problem, it is that different options (those options that affect the generated code) generate different code. If you have a CALLed program or a wild subscript that is hitting executable code, you need to be hitting the same executable code (so that the program "works" or "doesn't work" in each environment).
The classic is the IBM advice "test without OPT, turn OPT on and chuck it into Production". Sorry, but no way. Not because I have any fear of OPT (Mike's started breathing again) but because the generated code is different. Anything that is overwriting generated code is now overwriting something else (perhaps even no longer in this program).
Separately, at least some sites follow "no recompiles when promoting up the line", so you have not choice.
It was late in the day when I was reading your document, and I'll try to read it another couple of times over the weekend, but so far it scores well with me. I would put more emphasis on "if the data is correct, there are no issues with whatever compiler options you use" - too often people put blame on the compiler, rather than avoiding the obvious: the compiler didn't mess up their data.
BillWoodger