Yes, I realize it can cause unnecessary problems when using a Delphi compatible layout.
However it is needed for the more advanced layouts that LCL supports as the controls can be anchored to each other in different ways.
That is my understanding anyway. Mattias could explain it better.
[Edit]
I had to learn quite much about those layout algorithms to make CoolBar.AutoSize work.
A label used for a Text property always created a ChangeBounds loop error, only because I set its Left and Top properties.
I experimented for many hours and finally had to ask Mattias. Only the label's Align must be set to alCustom instead of alNone. Then it started to work.
CoolBar was a difficult case because it implements its own layout by overriding AlignControls and CalculatePreferredSize (for AutoSize).
I could have saved many hours by asking Mattias at once, but I feel stupid always asking him like a child.

Anyway, now I know more. Next component will be easier.
Juha