I love the idea of IAC as actual code . Too many times I've looked at yet another over engineered templating engine and thought, why couldn't this just be code?
The reason for not doing a full programming language for that is that you can prove the infrastructure is finite with a simple template language, but you can’t if your template language can do conditional branching. Or something like that. My CS-fu is admittedly weak. OTOH, I think Lisp would be the perfect choice for IaC.
I think reinventing the wheel every time a for loop is needed in a resource spec makes things unnecessarily tedious for everyone.