Я бы реализовывал так.
1) При клике добавить избранное кидаешь запрос на бек с id новости
2) На беке обрабатываешь и добавляешь для данного юзера эту статью в избранное.
При удаление тоже самое только удаляешь.
Можно ещё докидывать избранные в локальное хранилище.
Кидаем запрос на бек.
Если они не совпадают то перерисовываем. Иначе ничего не делаем.
Из этого следует
1) Да, нужно. Все важные данные должны храниться на сервере. И он же должен являться источником истины.
Тобишь. Если на сервере так, а на фронте по другому. Данные с сервера правильные.
2)Да всё верно.