One thing I note is that all of the languages you name are very far from the machine. Also Forth is not close to the modern machine. Note that it only has two integer types and the larger one can be aligned either way you make sure it is not.
Common lisp is one step away from assembly - you disassemble any function and it is, in fact, a valid strategy of one wants to check the compiler optimizations.
What people do is just write code they way they usually write dynamic lisp and then add types to functions where necessary for performance.
SBCL generates good assembly, btw.