It's pretty easy to miss a terminating semicolon which will waste time, but the real use case is for people who are writing the libs that other people are using; they have absolutely no knowledge or control of what other javascript might be prependend or appended onto theirs.