Виноват, для более "удобного" интеропа специально придумали платформ типы. До того момента всё принималось как наллабл by default. С размеченными аннотациями наверняка можно было сделать послабление, и в итоге иметь более безопасный, хоть и менее удобный интероп. В Kotlin/Native, кстати, этой дорогой и пошли — там нет platform types.
Вполне себе норм, если либа размечена. Если не размечена, можно было бы поддержать внешние аннотации, как это делает идея, к примеру. В общем, выкрутиться точно можно было бы.