Self executing functions

@svornost @ezsh A question about code style. !7901 (merged) is done with a self executing function. (It's by far not the only place this is done)

Now, using self executing functions when you need to initialize something makes sense, but in this and many other cases nothing is initialized.

So the question is is there any benefit of this scheme

globalFunction = (function() {
    let x;
    return actualFunction;

    function actualFunction(args) {
        // stuff
        return value
    }

    function helper1() {
        // stuff
    }
    // more helpers
})();

vs this scheme

globalFunction = function(args) {
    let x;
    
    // stuff
    return value;


    function helper1() {
        // stuff
    }
    // more helpers
};

other than the self executing function being able to do initialization?

Because if there isn't I find it much cleaner not to use a self executing function when not needed.