"Ленивая" функция используется для задержки определения функции до ее первого вызова, если с функцией связан процесс инициализации который выолняется только один раз. Ну например если тебе нужно определить какие браузер поддерживает возможности и связать с этим функцию. Нет нужды каждый раз исполнять код определения возможностей, ведь браузер пользователя не поменяется магическим образом:
function some_func() {
var result = (feature_detect) ? true : false;
some_func = function() {
if (result) {
}
};
some_func();
}