DUH! Hehe. Thanks for the comments and for clearing this one for me. That’s so obvious I don’t know how I missed it. Event.ADDED, Event.REMOVED and the event propagation mechanism takes care of this problem. Closing this one up.
One problem with updating the display list in Flash components is that you have no way of knowing exactly when it’s changed and needs to be updated without either user interaction (mouse events, for example) or testing it every frame (Event.ENTER_FRAME). There are no native Event.CHILD_ADDED or Event.CHILD_REMOVED events and the only DisplayObject that has dispatches Event.RESIZE is Stage. The one event that comes closer to that is Event.RENDER, but it cannot be trusted because it is asynchronous, meaning it can take a while to happen and the display list might be outdated a long time when it happens.
LayoutManager uses Event.ENTER_FRAME to update the layout and checks for changes in size every frame, what can be resource consuming. But so far, it seems like the only way to get around with it.