Вот вы вроде бы в курсе, что стейт не следует менять напрямую - а тем не менее это делаете.
Что вы понимаете под "мутабелен" и "иммутабелен" по отношению к методам массива я не знаю, и знать не хочу. Но могу точно сказать - не то, что надо. Вам явно стоит заглянуть
сюда.
Делайте копию массива перед splice'ом, и сам splice выполняйте над копией - так же, как push при добавлении элемента.
Кстати, о добавлении - почему у вас там в код метода зашита константа в качестве нового id? Нажали "добавить" два раза - вот и два элемента с одинаковыми id. Неужели так трудно было сгенерировать уникальный?
Например.