The docs say:
This function is called with the given event when a drag and drop operation enters the widget. If the drag is over a valid dropping place (e.g. over an item that accepts drops), the event is accepted; otherwise it is ignored.
So, it seems to me its not checking the model's canDropMimeData() since it is going even lower, it asks the item over which the event happens.