то есть адаптер получает новую коллекцию, сравнивает со старой коллекцией. Вычисляет индексы элементов которые были удалены. Потом сетит новые данные. Потом нотифает удаленее. А не слишком ли много лишних вычислений и бегания по классам Adapter -> View -> Presenter -> View -> Adapter
У вас есть кэшированные данные в репозитории? когда получаем новый лист, можно в репозитории вычислить diff и передавать например обертку, где будет и новый лист и диф