From what I’ve seen so far there is no difference at all, conceptual or not. We should stick to one and get rid of the other. Both operate on the same TIR representation. In one case the TIR expression is replaced by another function call, in the other the resulting expression is more complicated, but it’s still a TIR expression.
We should not have multiple concepts that do the same thing. On the contrary, we should aim to reduce the number of different abstractions.