Kirk, I thought I had a work-around by using e.g. "Text to prepend {caption}" in the caption field. This, however, produces "Text to prepend Text to prepend {caption}" in the caption field...
I guess the evaluation of the {caption} variable is done after you have already assigned the new value. I noted this behaviour with the other fields as well so this is consistent. A solution would be to perform the evaluation of the new value (e.g., from the IPTC stationary) first, that is before assigning it. To me this sounds like the ideal solution as it would allow for lots of other uses as well (e.g., setting a field to parts of the original value, etc.) I'm not sure if this would break other uses though...
Note: using the current 4.5.3 beta