I guess that's because of the way special characters like
?!:/ are accepted in variable and function names. If
// was used for single line comments then at the end of lines without a semicolon, you had to put a space before them, or else they'd be treated as part of an identifier's name.
Semicolon is not allowed in identifier names and so it can be used without a problem as single line comments.