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.
Yeah. So I add a trailing semicolon. Then the 3rd party library releases an update. I have to remember to merge my patch every time they update, do I?