After thoughts, I think this part of my previous mail is not so obvious :
"Obviously, the overwritting should not happen."

If declaring CSELF is like doing expose CSELF, then it's normal to have a specific value at each scope.
Exposed variables are not inherited, so the assignment of DictWidget seems ok, knowing that the link DictWidget-->DictWindow has been created. I suppose that there is no need of specific ordering when linking the dictionaries ?

If that's correct, then I think the CSELF value should be managed with two methods get and set, whose scope is GTWIDGET. That way, the CSELF value would be always stored in DictWidget.