Ответ
Без inline компилятор генерирует отдельный объектный код для каждой точки вызова функции, что может увеличить размер бинарного файла. Также отсутствие inline может привести к накладным расходам на вызов функции (сохранение контекста, передача аргументов и т.д.), особенно если функция вызывается часто в критичных к производительности участках кода.
Пример без inline:
fun calculate(a: Int, b: Int): Int = a + b
При каждом вызове calculate будет происходить полноценный вызов функции.
Если же функция небольшая и часто вызывается, лучше использовать inline:
inline fun calculate(a: Int, b: Int): Int = a + b
Это исключит накладные расходы, встраивая код функции прямо в место вызова.