I've recently scratched the surface of such an idea in the process of converting a normal button in the default UI into a SecureActionTemplate button in order to fix a bug with tradeskills not shifting a druid out of form and erroring out even with the relevant CVar set.
I've run into an interesting discovery while looking at how frame names and global registration through the frame name works when copying a frame using the same name.
Code:
print(CreateFrame("Frame","Test"));
print(Test);
print(CreateFrame("Frame","Test"));
print(Test);
Produces something like the following:
table: 2DA48CED
table: 2DA48CED
table: 2EAB5C32
table: 2DA48CED
|
Notice the first 2 and last pointer are the same. When creating a frame that shares the name of an existing frame, the global variable is left alone, yet the frame is created anyway.