Почему метод обернут анонимной функцией?
var fade = $('div').fadeTo('fast', 1);
var fade = function(){
    $('div').fadeTo('fast', 1);
}
Чуешь разницу? 
В первом случае в fade запишется результат выполнения $('div').fadeTo('fast', 1);
Во-втором — функция, которая будет это дело выполнять при каждом вызове fade().
То есть если не оборачивать в анонимную функцию, fadeTo сработает при навешивании события, а не когда оно выстрелит.
В функцию mouseenter передается параметр, mouseenter ожидает что её при вызове передадут callback функцию, в частности Вы передаете анонимную функцию. 
function(){
...}
Вы по-сути задаете обработчик события.
это тоже самое(ну почти), что var fn = function(){
        $('div').fadeTo('fast', 1);
        //ИМХО лучше так, $(this).fadeTo('fast', 1);
}

$('div').mouseenter(fn);