Calling the destructor multiple times on a class object results in undefined behavior according to
Once a destructor is invoked for an object, the object's lifetime ends; the behavior is undefined if the destructor is invoked for an object
whose lifetime has ended ([basic.life]).
However, similar thing doesn't apply to pseudo-destructor calls.
pseudo-destructor calls end objects' lifetimes. I wonder if adding such a provision would be useful.