this sounds like a javascript syntax bug:
a named function could be a statement however, an anonymous function just consider it as an expression.
Pro:
you can do function() { ... }()
Con:
you cannot do function() { ... }
But why people would want to define a anonymous function without invoking it? So the con is not really a concern.