Что означает контрукция типа “(function(d){ ... })(document)”
1. Чтобы ограничить область видимости, т.е. избежать глобальных переменных.
2. Чтобы сократить запись обращения к объекту.
3. Как частный случай 1го и 2го, чтоб не допустить конфликта имен. Например, при использовании jQuery часто пишут

    (function($) {
        ...
    })(jQuery);
Благодаря этому в скрипте можно использовать сокращенную запись типа $(xxx), даже если идентификатор $ определен где-то еще, например, в MooTools.

P.S. И это, кстати, не замыкание.
По мне так это обычное капсулирование функционала.
А на вход вы можете подать любую переменную, например документ ифрейма а не свой — функции будет как-то фиолетово