В каких случаях эффективнее дублирование кода вместо вызова функции?
Если на данный момент функция в памяти не была определена (не была востребована) и  использование логики работы кода этой функции планируется строго один раз, то разумнее использовать сразу само тело функции.
Всего два момента.Размер кодаКритически важные ограничения по скорости выполнения (а не разработки)
Первое напрямую влияет на цену поддержки такого решения.
Второе поднимает или убирает лимиты на цену его поддержки.
Написание отдельных оптимизаторов идет в той же канве, если задача частовстречающаяся, а без нее никак, то становится выгодным написать оптимизацию.
Соотношение скорости выполнения и размера вторично - увы.
Раз пациент упорствует, то@vitali1995, в вакууме разработчики не работают.
Вам нужен рерсурс по исследованиям. Вот там придумают и обоснуют.
Впрочем... Математику учили?
Вам нужно найти минимум от функции  по time, или по sizef(sum(size), time)
Где sum(size) это сумма размеров всех функций в коде в комбинации подстановок
А time это время работы этого кода