I think @User is doing something similar with the text fallback property - from his notes:
- The property editor builds a dictionary of node properties and their values and does the same for any other nodes mentioned in the template.
- The property editor renders the fallback template but does not store that in the field value (to avoid "caching" depedent values).
- There is a value converter that returns either the entered value or renders the fallback value.