By the way, a problem with making a proxy derived from QAbstractItemModel and not QAbstractProxyModel (or its subclass) is that you lose the possibility of going up the chain of proxy models to reach the final model with a single loop, like so:
Yes that is somthing we have take seriously in design, it will be better to subclass QAbstractProxyModel (or its subclass)