That's not true, Spark's entire query engine relies on use of runtime codegen via macros/quasi quotes
Look up the architecture of Catalyst + Tungsten
https://www.databricks.com/glossary/catalyst-optimizer
Catalyst uses runtime codegen, sure, but the OP wasn't using that.