Ah, I see why *that* wants to know about it ... I think. I suppose you're arguing that variable expansion shouldn't be able to insert, say, an \else in a non-active branch? Maybe, but if it can insert an \else in an active branch, then why not non-active too? Seems a bit inconsistent.
Are we sold on the idea that conditionals should be implemented by meta-commands, rather than for example terminal symbols of a new grammar on top of the existing?
I would say that this already exists server-side, and it is named PL/pgSQL:-)
I think that once psql has started with \xxx commands, then client-side extensions must stick with it till the end of time.
+1
we don't need strong client side scripting language - it should be just simple.