Из стандартного [expr.delete]:
Если удаляемый объект имеет неполный тип класса в точке удаления, а полный класс имеет нетривиальный деструктор или функцию освобождения, поведение не определено.
Итак, это UB, если есть нетривиальные вещи, и это нормально, если нет. Предупреждения не являются необходимыми для UB.
Это неопределенное поведение и распространенная ошибка при реализации шаблона pImpl. Насколько я знаю, просто нет такого понятия, как предупреждение, которое должен выдавать компилятор. Предупреждения являются выборными; они там, потому что автор компилятора думал, что они будут полезны.