FirefoxのGreasemoneky、ChromeのUserScriptでは即時関数で囲まなくても変数がグローバルに漏れることはなかったと思います。
（GMは実行時に即時関数でくるんでくれる、Chromeはそもそも別のコンテキストで実行される)

ただ、それ以外の環境はどうなのかわからないですし、即時関数でくるむと処理を途中で中断できるので慣例としてくるんでおいたほうがよいと僕も思います。