ALGOL (1960) used semicolons as separators.
C made them terminators.
Every language since has had to pick a side, and "optional" always turns out to be the hardest choice.
JavaScript's ASI is what happens when a 10 day language has to live with a quick pragmatic decision for 30 years.