I’m a huge fan of Chris’s blog. I read almost everything he posts, it’s interesting stuff and he’s a solid writer, too.
Seems like the obvious solution here would be a macro, I would think. I wonder why that wasn't tried.
A macro isn't a function and can't be used like a function. Sure, doing the work at compile-time instead of run-time will be much more efficient at run-time, but you're won by moving the goal posts.
Macros aren’t first class, so there’s that. Not that it would matter in this case, but it’s something to keep in mind.