Это самая важная причина, по которой использование точки с запятой опасно. Вы думаете, что удаляете шум, но на самом деле вы просто перемещаете его из одного места в другое, делая свой код более хрупким и уязвимым для ошибок, которые трудно отследить.

Я взял образцы кода из этой статьи, которая хорошо объясняет проблему.

// perfectly understandable
foo();
[1,2,3].forEach(bar);
// moving the noise
foo()
;[1,2,3].forEach(bar)

Вместо того, чтобы помнить простое правило:

Просто: завершайте каждое выражение точкой с запятой

Теперь вам нужно запомнить гораздо более сложное правило:

Сложно: поставьте точку с запятой перед любой строкой, которая начинается с открывающей квадратной скобки, открывающей круглой скобки или обратной кавычки.

;[1,2,3].forEach(bar)
;(function () {
  window.alert()
)())
;`hello`.indexOf('o')

И это вообще все случаи? Я не знаю.