Есть некоторая структура данных, которой нет в наличии в мультиплатформенной библиотеке котлина
Однако имеется её реализация в стандартной библиотека java и рантайме js
Логично написать expected обёртку, чтобы все платформы могли её использовать
При этом и в jvm, и в js она будет корректно собрана GC, однако её сишная реализация окажется внутри некоторого kotlin-объекта
Сам объект будет так же собран, вопрос про то, где освобождать эту самую структуру, если она себе что-то навыделяла malloc'ами и ожидает, что мы её потом деинициализируем
Если это expect, то все вопросы с менеджментом памяти должны решаться на стороне С. Иначе получится стандартная проблема с тем, что не известно, кто владеет объектом, и кто его должен освобождать. Туда лучше не ходить, это кошмарное место