В соответствии с документацией QGraphicsItem деструктора: "Эффективно удалить элемент из QGraphicsScene, прежде чем уничтожить элемент".
Почему? Я не могу придумать, как это может измениться. И если это действительно имеет значение, не должен вызывать деструктор QGraphicsItem:
if (scene() != NULL)
scene()->removeItem(this);
Я проверил источник, и, похоже, это не так, хотя иногда мне трудно понять Qt-источник. EDIT: см. комментарии в ответе jdi.