[...]
At destructor invocation time, the destructor finds all the member subobjects in their correct places and it starts destroying from whatever order the standard wants.
The order the standard wants is the opposite order of initialization.
Why? Because the destructor is only available when all the subobjects exist and are in their places.
Does it need to know how the object was constructed? NO
It does, since it needs to destroy the objects in the opposite order of initialization.
How hard is this to understand?
It sounds like you consider it unimportant to destroy objects in the opposite order of construction. It's a pretty important feature actually, perhaps more important than first meets the eye.
The only thing that matters to a destructor is that the object finished construction successfully.
No, the initialization order also matters. Try to think of examples where it really matters.
--