Я думаю, что одного виртуального обычно достаточно.
Есть ли другая причина, чтобы сделать его чисто виртуальным, чем заставлять производные классы реализовывать свой собственный деструктор? Я имею в виду, если вы выделяете что-то в конструкторе вашего класса, вам следует создать собственный деструктор - если ваш класс является производным или нет.
Не считается ответом, как я уже знаю: если вы хотите, чтобы ваш класс был абстрактным и у него не было чисто виртуальных функций - оставьте его деструктору.
Еще несколько применений?