obj.func - возвращает функцию
Верно.
где используют второй вариант?
Например, когда нужно, чтобы анонимная функция-обертка выполнилась сразу же после своего объявления. Так часто поступают разработчики плагинов для jQuery, т.к. им необходимо инкапсулировать код плагина, передав в его область видимости некоторые переменные и константы.
(function($, window, document, undefined) {
// ...
})(jQuery, window, document, undefined);