> It wouldn't make sense for asm! statements that are not volatile

Totally agree with that, but it's a bit out of scope of this RFC. Or should I add it here as well?

> gcc just throws it all (essentially) verbatim into the final output

That's the problem of top-level asm!. I'm not sure what is the scope of the statement — is it the translation unit itself? What section is it going to end up in, if rust switches to "-ffunction-sections"?

Re-using the function syntax provides answers for all these questions.