Честно говоря, я не знаю, чем руководствовался автор этого кода. Я бы выбрал третий вариант, если тело функции всегда одинаковое (а ещё лучше вынес бы его в отдельную функцию) или второй, если код функции нужно генерировать каждый раз разный. Именно потому, что первый вариант вызывает вопросы.
(Function) /* вызывается с параметрами */ ('n', 'return n;')
(Function)('n', 'return n;') /* вызывается в свою очередь с */ (n)
/* Запись */ (Function) /* эквивалетна */ new Function