Почему java.util.UUID нельзя просто импортировать в commonMain с iOS?Это JVM API, недоступный всем таргетам. Выберите общий доступный API либо выделите платформенную границу. Иерархия source sets.
Когда интерфейс удобнее expect class?Когда нужны несколько реализаций на одной платформе и подстановка fake в тестах. expect/actual связывает платформенные объявления при компиляции. Expect/actual и интерфейсы.
Нужно ли дублировать iOS-реализацию для device и simulator?Не если подходящий iosMain объединяет таргеты и используемые API доступны им обоим. Архитектуры при этом всё равно компилируются отдельно. Иерархия source sets.
KMP-библиотека собирается под Android. Достаточно ли этого для commonMain?Нет. Нужно проверить поддержку всего набора используемых таргетов и доступность API в общей части. Метка «multiplatform» сама по себе недостаточна. Иерархия source sets.
Почему currentTimeMillis плохо подходит для измерения длительности?Показания календарных часов могут измениться из-за синхронизации или действий пользователя. Для elapsed time выбирайте монотонный источник. Kotlin: TimeSource.
Доказывает ли успешный JVM-прогон commonTest работоспособность iOS?Нет. Он проверяет эту компиляцию и запуск. Платформенные реализации и мост Swift требуют собственных проверок. KMP tests.