Perhaps sometimes you want to run it immediately and sometimes you want to attach it to an event - so you’d only have () when attaching to an event and ()() when running immediately.
I could be missing the obvious, but I can’t think of an example of why you would want to do that.
If you want to execute the inner function immediately then why not do it inside the outer function.
Usually when a function is being returned it’s because you want to do something with it at a later stage. Maybe it’s being attached to an event like onclick or being used in a timer etc.
As I say I could be missing something, but that’s my take.
Perhaps sometimes you want to run it immediately and sometimes you want to attach it to an event - so you’d only have () when attaching to an event and ()() when running immediately.
I’m sure you’re right, just haven’t bumped into that scenario yet. Or not that I remember.