Это не говнокод. Это просто неоптимизированный код. Говнокод это когда например вместо готовой функции, типа Math.round() пытаешься своё говно написать
В нестрогом режиме обычные функции могут быть доступны вне блочной области видимости, в строгом - нет. Объявления async функций всегда в блочной области видимости вне зависимости от use strict.