В большинстве случаев можно, но иногда не получается. Должна быть возможность подлезть и подправить
Даже если не генерировать обёртки, то есть возможность подлезть и подправить. Те же suspend функции можно вызвать их Джавы, никто не запрещает. Но лучше написать на Котлине обёртку и её вызвать. Или в случае с инлайн классами. Тут уже функцию вызвать нельзя. Но можно написать обёртку и её вызвать. В случае cinterop лучше ругаться на этапе компиляции. Сам тул можно оставить для первоначальной диагностики, чтобы выявить все проблемные места во время первой интеграции, а потом выкинуть.
Короче - обёртки, что автоматические, что написанные ручками - зло, которое должно умереть. Потому что это дополнительно усложняет и так непростую сборку проекта. Это обязанность компилятора уметь читать язык, с которым интеропимся и если данная конструкция не поддерживается - ругаться. И если нужно, то генерировать обёртки в *обратную* сторону *незаметно от программиста*, потому что часто иначе просто невозможно. А после сборки чистить их.