Семантически тег разрыва предназначен для передачи естественного разрыва потока информации - он немного расплывчат, но идея заключается в том, чтобы использовать его, когда нужно указать, что между элементами есть логическое разделение, но они все еще часть того же общего контекста.
Например, у меня могут быть стилизованные наборы полей, чтобы они располагались в ряд, располагаясь горизонтально. В этом сценарии, если бы я хотел разделить два набора полей в одной форме, я бы, вероятно, использовал тег разрыва. Это визуально и семантически указывает на то, что наборы полей все еще являются частью одного и того же контекста, но между ними существует некоторая концепция разделения.
Другой, возможно, лучший пример: элемент address.
<address>
<p>
123 Main Street<br/>
Townsville, USA 12345
</p>
</address>
Спецификация приравнивает его к возврату каретки. http://www.w3.org/TR/html401/struct/text.html
Они «плохие», только когда вы используете их для разметки - то есть: несколько разрывов для имитации интервала, который действительно должен обрабатываться на косметическом слое (например, CSS).