Thank you for your question, sorry I do not understand it.
Do you agree the echo/ blech example is illegit and the fetch/ zero example is legit? Do you agree the echo/ blech example is illegit only because the implicit epilogue of blech may free the int i before returning?
Can you restate your question less concisely?
Meanwhile, I can try to explain how I may be misunderstanding/ misusing c.a.e. jargon. Above I have quoted myself in full, below I say again less concisely what I meant to say before. In Five points:
a) I'm thinking we can (and should?) educate people new to C language law by studying the effects of source-to-source transformations.
We can compare and contrast the translations of similar or identical sources, provided the translations exist, no matter whether some printed C standard does or does not promise that two compliant compilers whose hypothetical authors have actually already corrected their last bugs will agree what the source means.
b) Translations exist, indeed appear massively distributed, for plainly "invalid" source such as the example above.
c) C compilers translate syntactically invalid source into syntax errors.
d) C compilers translate semantically invalid source into more revealing constructs. Possibly the result I have enjoyed most came from a compiler who calmly produced an executable that called null whenever a code path actually referenced a subroutine not found during link.
e) I don't feel confident I have learned a parliamentary rule fully until after I can teach someone else how to bend it usefully e.g. my appreciation for increased when first I discovered the use of the carefully "invalid" longjmp back to longjmp:
fibers in C across platforms, if abused without asm
Pat LaVarre