I apologize if this has already been covered.
I'm picturing that code blocks would appear only once in the project tree, with calls in other logic, but with instance data blocks as UDT instances, at one per use, correct? That seems like it would align with your answer to the last question and current DM behavior. So then the (single) code block can be edited according to normal guidelines for online edits, and additional calls to that function can be added at runtime, but new UDT variables would require a program mode synch because it's new memory, correct? So basically like how it works now?
If that's the case, and runtime edits were critical, I'd probably create spare variables of that UDT type and call them into service as needed. I think the variable names can even be edited from the placeholder names to real names at runtime, or is that a memory config change?