QTreeView::isFirstColumnSpanned() is not related to a model but purely internal to QTreeView.

I agree with you that this is not really convenient (esp. that you have to re-set it when the model is changed, or filtered...).

As you can see by the existence of QAbstractItemModel::span() there are plans for proper support of that feature. But these plans have been plans for a long time now...