Объяснение
Compose строит интерфейс из состояния. Recomposition повторно вызывает функции, поэтому побочные эффекты нельзя произвольно выполнять в теле composable. Стабильные ключи связывают элементы списка с их состоянием.
Задача для самостоятельного решения
Почему сетевой запрос в теле composable может повторяться?
Показать разбор ответа
Recomposition запускается многократно. Используйте контролируемый effect или ViewModel и моделируйте loading/success/error явным состоянием.