Whether it is attached to actual full pointer member or to a points_to id it will only delete the most derived data in the table of the class it is declared it. The earlier polymorphic table records are unaffected which means a lot of dead garbage is left in those. If so - what's the point?