as for the existing interface comment you haven't answer my original question, I want to change the size of a control and not inform anyone about that change how it is done? I do not want the parent to be updated I do not want the layout to be recalculated or changed in any way. I just want to change the control's size. Go show me how.
TControl has DisableAutoSizing / EnableAutoSizing. You can play with them.
If your control's parent is not autosized, AFAIK it will not be updated whatever your control does.
Otherwise I don't know. I am not a component design expert. The LCL layout system is also not done by me.
I wonder why you so desperately try to find problems in this system. It feels unreasonable.
About accessing private variables of other classes: It is a useful feature between tightly coupled classes which must be placed in the same unit anyway.
Yes, maybe the current "strict private" should be called "private" and the current "private" should be called "unit private" or similar.
Until it gets changed it is OK to access "private" variables of tightly coupled classes.
TControl and TWinControl are tightly coupled because of their parent / child relation among other things.