Я бы сказал, что эту проблему можно и нужно решать с двух сторон - со стороны компоуза и со стороны языка. Например, состояние в компоузе сохраняется через MutableState, что не очень хорошо вписывается. Без изменения языка невозможно 1) запретить стейт, который не MutableState и 2) задавать стейт более удобно, чем by remember { mutableStateOf(...) }.