Получается больше одного раза вызывать нет смысла. Если код большой, то вообще полная жопа! На кой такое изобретали?!?!?! Если изначально javascript синхронен, то зачем ставить костыли?
Пример: У меня есть кусок результат выполнения которого должен использоваться в разных местах. Разметить код для 5-10 вызовов довольно больших = киздец! Тем более они в разных местах. Кто-то скажет - асинхронность. Но выполнение такого затормозит так не слабо - идёт выполнение 5-10 кусков одного и того же кода вместо того, чтобы присвоить выполнить один раз, присвоить значение и им пользоваться - что всё преимущества async исчезает на три знакомых всем буквы!
Пример такого кода - генерация подписи и её проверки в разных местах, используя crypto.subtle.xxx (Web Crypto API).
Надо было того придурка, что Promise изобрёл удавить в пелёнках.