Delphi developed some bad hack practices over the years, this one of them.
Its not generally a good idea to be changing the size of a window during a size operation after the fact, it causes flicker,flashes or what ever..
Most MS code and others sends this message when the WM_EXITSIZEMOVE message is generated which happens after the user releases move or size operations, then the WM_SIZE message is posted carrying the last size info..
Lazarus seems to handle all the child sizing and anchoring during the WM_WindowPosCHanged which does track the action.
Delphi does the same but what its doing is sending fake WM_MOVE/WM_SIZE messages that reach those handlers.
I am not sure where at what point Delphi decides to do any work that maybe needed but in the old days it was generally done in the WM_SIZE/WM_MOVE handler when mouse was released.
I really think the LCL form should have a OnBoundsChanging event that carries the VAR MEssage so that it can be adjusted on the fly by user code. With that, if the user still wants the old style then from that they can call directly the OnResize
You can think of the WM_MOVE and SIZE as a place where you can log your window position for later restoring like a config file.