Действительно ли так необходим виртуальный деструктор?

Да вся тема непонятно к чему...

Когда программист не может толком объяснить зачем ему нужны виртуальные функции, то сложно о чем то говорить.

Виртуальные функции нужны для механизмов полиморфизма.

Так же для корректного удаления полиморфных объектов, (через базовый класс) нужны виртуальные деструкторы.

Вот.

Теперь попробую пованговать что хотел ТС.

Если нет никаких ресурсов для удаления, и пользовательские деструкторы не используются (не объявляются).

Без полиморфного удаления. Будет все работать и без виртуальных деструкторов. Наверное

Такое ограниченное использование полиорфизма крайне глупо и чревато минным полем.

Как написал

TheCalligrapher

, UB, утечка памяти, и вполне вероятно креш программы.

Поэтому использование виртуальных деструкторов при использовании полиморфизма, должно быть автоматическим и обязательным.

Потому как никто не запретит вызвать удаление объекта через указатель на базовый класс.

Очень сильно жалею что опять влез в подобную тему...