Нет, эта обязательность конечно не того свойства, что иначе код не скомпилируется или будет работать гарантированно неверно. Это вопрос стиля. Пишешь в объявлении класса virtual у какого-то метода - напиши и "virtial ~MyClass();". Даже если полей нету, даже если он останется пустым - ну позже добавишь "{}". Потому что сегодня полей нету - а через три года кто-то другой их присобачит...
no subject