The only difference I can think of is if you assign a variable to a function inside the first set of parentheses, you will get different results, depending on the grouping.
var test;
(test = function(arg) {
console.log(arg)
})('I am the argument!')
That works as expected: It assigns 'test' to the function, then runs it once with the argument in the second set of parentheses. It's the same as setting test, then running it with test('I am the argument!')
But how about the other way?
var test;
(test = function(arg) {
console.log(arg)
}('I am the argument!'))
test
is undefined! Why? Because when you put the parentheses right next to the function, it invokes the function before it then assigns it to the variable. If you wrap the assignment in parentheses then run it (example 1) then you're good to go.