> -- Comdiv писал(а):
> Это может быть проблемой для критических областей, если assert послужит причиной ошибочной аварийной остановки, которой бы не было без него - инструмента борьбы с ошибками.

Вот это ключевая фраза.
Если речь о некритических приложениях/компонентах, то не вижу проблемы:
- ASSERT призван отловить уже где-то ранее по ходу выполнения произошедшую ошибку, которая иначе бы проскочила "тихой сапой" дальше или вообще до конца (до некорректного результата).
- ошибки, которые проявляются в той строке, где и допущены - они могут быть где угодно, хоть в ASSERT, хоть не в ASSERT. С таким же успехом можно просто обсудить тему "если я увеличиваю объём кода на 5%, сколько ошибок я внесу?", типа того.

В ответственных приложениях, конечно, отказоустойчивость должна обеспечиваться обработкой исключений на верхнем уровне рабочего цикла приложения - и какой-то стратегией восстановления. Как в Erlang (и его soft-realtime нише): дохнет отдельная задача, есть обработчик этого сдыхания. И т.п.