Also die Klammern um alles:
(function () {/* … */} ())
Finde ich unverständlicher als (function () {})(). Der Sinn der Sache ist
1. am Anfang einer Zeile die Unterscheidung zur Function Declaration
2. Eventuelle Probleme bei der Minification umgehen bzw. aufzeigen.
Für ersten Zwecke wäre alles denkbar, was ein Expression Statement einleitet, es ginge auch
!function(){
alert(1);
}()
Für zweiten Zweck ist (fe)() deutlich besser als (fe()) (wobei fe = Function Expression), denn () kann nach der Komprimierung als Call-Expression geparst werden, wenn der Code vorher nicht korrekt auf ; endet. Das ist bei ()() auch möglich, nur gibt es dann wahrscheinlicher eine Exception, wenn der Rückgabewert keine Funktion ist.
Mathias