Certainly. I've been experimenting with a compiler backed by LLVM, and using its IR builder, I often wish to create a function, define its body, then return the function. This usually takes the form of:
(prog1-let (func (llvm:add-function ...)) (setf (llvm:linkage func) :internal [...]
i'd use a custom macro here called (with-new-llvm-node ...) or somesuch, and that would also make the code a whole lot more easier on the brain when reading.
and if it's a regular and often repeated construct in the codebase, then i'd even introduce an implicit -node- variable in that macro (which is colored specially in my emacs).
IMHO.