I can&#x27;t find the exact quote nor site, but it&#x27;s a common advice in lisp tutorials to write the macro as thin as possible and split its internal logic as tiny composable functions (the usual desired lisp&#x2F;engineering style).<p>The rest comes from my small experience, in college we had a project patching java bytecode on the fly, you could generate correct logic at the bytecode level, but you would lose all the benefit of high level language (typechecking, debugging). One team had this excellent idea to just write the smallest bytecode hook&#x2F;wrapper that would then call normal Java code.