sauf si c'est une erreur que l'on peut raisonnablement avoir ou si l'application est critique).
Ou par exemple si c'est une librairie destinée à être utilisée par d'autres, auquel cas c'est vilain de mettre des appels du genre assert() / abort() / exit(), rattrapables seulement à un niveau très haut par l'utilisateur de la librairie.
J'ai utilisé ZeroMQ du temps où ils abusaient des assert(), c'était chiant de se payer des aborts durs à cause de leur trop large utilisation d'assert(). Même si on avait un watchdog applicatif et qu'on essayait de faire une gestion correcte des erreurs, à partir d'un certain moment.