I note the cautious optimism at the end of your note on optimisers.
In the case of GNAT, the news is quite good as regards the optimiser. Firstly
it is very good at what it does (although it is not as aggressive as, say, DEC
Ada). Secondly there is no difference in the likelihood of bugs being
introduced between different optimisation levels. The maximum optimisation
level in particular is extremely thoroughly tested as this level is always used
for most of the mainstream software built with gcc, for example Linux.
Here is the relevant quote from the gnat documentation :
"Note: unlike the case with some other compiler systems, GCC has been tested
extensively at all optimization levels. There are some bugs which appear only
with optimization turned on, but there have also been bugs which show up only
in unoptimized code. Selecting a lower level of optimization does not improve
the reliability of the code generator, which in practice is highly reliable
at all optimization levels."
The different levels are present because of the tradeoff between code quality
and speed of compilation, and also for certain debugging issues.
[Note : I work with Michael, but I have the good fortune to be using Ada95 and
GNAT rather than the compiler he is referring to (which will remain nameless to
protect the guilty) which I used and loathed heartily for years.]