Смысл есть. Если не написать !, то функция будет распознана как function declaration, а ее нельзя сразу же вызвать, т.е.
function (){
/* body */
}()
Вызовет ошибку. Но добавив оператор, мы «конвертировали» наше function declaration в function expression, которое уже можно вызывать по вышеуказанной схеме. Стандартный эквивалент
(function (){
/* body */
})()
длиннее на 1 символ.