Immediate invocations do not need to run cleanups themselves and the
destructors need to run after each full-expression is processed.
Attempting to add ExprWithCleanups for each immediate invocation may cause
adding it in the wrong place and producing code with memory leaks.
Thanks @ilya-biryukov for helping reducing the reproducer and confirming
that the analysis is correct.
Drive by nit clean-up while we are here.