The worst thing is once you make the meta programming turing complete. Now you have no idea whether the compilation can actually finish.
Granted there are ways to get the compiler stuck with other undecidable problems. But turing completeness is so easy to accomplish with minimal meta programming.
Is that really a problem though?
If compile time > some cut-off threshold, something is wrong either way. At that point it doesn't even matter if the compilation could actually finish.
One of the major problems with C++ templates is that it's very hard to reason how it's going to affect compile times without knowing compiler internals and whatnot.
That multiplied by the C preprocessor include crazy-town. And all the utter madness.
JAI style compile-time-execution on the other hand. Is basic imperative code. Comparatively speaking fairly easy to eyeball the performance. More-over i'm sure Jon will include some sort of way to profile how much time is spent doing CTE in each file/module or something like that.