Для чего нужен паттерн модуля (module pattern) в js?
Уже ни для чего. Когда не было CommonJS и уж тем более ES2015, это использовалось, чтобы не засорять глобальную область видимости. Сейчас в такой имитации надобности нет, используют CommonJS модули на nodejs (или ES2015 c babel) или browserify/babel/webpack/systemjs на фронтенде.
Ну как для чего. Классическое ООП. Публичные члены класса доступны всем, приватные только самому классу.