а как она работает? 
вот ее реализация
 inline void QTreeWidget::removeItemWidget(QTreeWidgetItem *item, int column)
{ setItemWidget(item, column, 0); }
 где логика?
И по факту у меня какбэ на месте остается удаляемый элемент дерева нулевого уровня
Этот метод удаляет из элемента 
виджет, который устанавливался там методом:
void setItemWidget ( QTreeWidgetItem * item, int column, QWidget * widget )