> aside from syntax sugar is there a difference from (() => { ... })()
Well it will be more efficient unless the compiler is smart enough to inline the closure call. If it is, then no, it's just sugar. But as you say, the reason to inline code is for readability, and sugar is useful for that.
I tend to find I don't use (() => { ... })() much because all the noise often makes it less readable overall.
An example where I would use it:
const foo = do {
let foo = "bar";
if (complexCondition()) foo = "baz";
if (condition2()) foo = "quz";
foo
}