Galera,
Quando fui testar o código da aula, percebi que ao selecionar vários itens e tentar retirar um dos primeiros que eu selecionei, sempre o último item é excluído da lista.
Isso está ocorrendo por causa da função que verifica pelo index da lista se o item está ou não presente dentro da mesma.
novaLista.splice(novaLista.indexOf(novoFavorito), 1);
Quando você retira um item do início da lista, todos os outros index são atualizados, acabando com a verificação de forma correta.
Para contornar isso, utiliza essa função:
return setFavorito(novaLista.filter(fav => fav.id !== novoFavorito.id));
vlw!