One of the bases for security is the age of a program.  All other things being equal, the implementation that has been around the longest is expected to have fewer issues than the shiny, new thing (because the old program is well-understood, has been patched to death, considers a thousand corner cases, ran on more hardware, more time passed without any issues, etc.).<p>As such, changing away from well-known compilers and language behaviors may not be the wisest thing for security.<p>On the other hand, extending existing compilers to restrict behavior seems reasonable.  Also, by all means document the hell out of the things that are not well-defined.