Не знаю, что ещё можно добавить к уже сказанному в документации. Думаю, наглядная демонстрация поможет лучше понять, что к чему.
Пример номер
раз - key нет. Пример номер
два - key есть. Тыкаем кнопочку и смотрим, что происходит со значениями в инпутах. В первом случае они остаются на месте, во втором начинают ездить по кругу (аналогично элементам массива). Почему так? Возвращаемся к процитированному вами отрывку из документации, и осознаём, что в первом случае
Vue использует алгоритм, минимизирующий перемещение элементов
а во втором
Vue изменяет порядок следования элементов, основываясь на изменении порядка ключей