petya,
Рельно это нужно для того чтобы функция знала как её зовут и могла что-то с собой делать.
var trololo = function () {alert(arguments.callee.name)};
trololo()
function trololo() {alert(arguments.callee.name)}
trololo();
В чисто конкретном месте я использовал это для обертки над классами (чтобы в консоли у объектов были нормальные имена) и для модуля логгера, который мог вывести всю цепочку наследования моего класса
(Например он вывадил "Base.Module.UserEventManager")