I have a postit note idea that says simply "typesafe macro assembler".
I've not fleshed this out yet, but I think a relatively simple system would help deal with all the issues you mention in the first paragraph while allowing escape hatches.
You could call it "C".
Check out typed assembly languages like TALx86.
https://en.wikipedia.org/wiki/Typed_assembly_language