Как и когда правильно использовать actions Vuex для API-запросов?
пришел к выводу, что запросы к API надо делать внутри actions Vuex (якобы это best practices). Однако, я совершенно не понимаю, всегда ли это необходимо
Выносить общение с api слоем в vuex оправдано, когда данные, которые оттуда приходят вы храните в vuex.
При этом, конечно же, лучше при мутации чего-то на сервере обновлять этот список с сервера, а не пробовать повторить эту мутацию локально. 
Что касается вашего вопроса про то, что vuex выглядит прослойкой: у него изначально другое предназначение, он не обязан полностью содержать актуальные данные из бд, это слой с данными для приложения и нужен он для того, чтоб все общие данные лежали в одном месте.
PS 
1. добавьте в ваши actions, использующие вызовы API return, иначе при вызове в компоненте они будут возвращать не тот промис, который вы от них ожидаете.
2. Использование хэлперов mapActions, mapGetters.. позволит сделать общение с vuex в компонентах гораздо симпатичней
Ну вы же получаете айдишник в ответе? Значит, коллизий быть не должно. А обновление данных... Ну так в любом случае надо делать, независимо от того, добавляли что-то или нет, если того задача требует