It’s a good point. Being able to defer evaluation until actually emitting text to say WSGI or ASGI is an important usage, but without requiring someone to explicitly write this out, such as a series of yields in a generator.
That is, for some markup language with tag function markup, the idea we are trying to support here is that we would want for nested markup
markup"{top} ... {middle} ... {bottom}"
that top can be emitted (and therefore evaluated) before middle and then bottom.
I do think other use cases for deferred evaluation make sense, which is why we chose a uniform model with Interpolation.getvalue providing access to the lambda-wrapped expression.