In any case, if the programmer knows than assert error is restricted to a particular domain, and is recoverable, and wants to recover from it, use enforce(), not assert().
But all that does is working around the assert's behavior to ignore cleanups.
Maybe, when it's known, that a failure is not restricted, some different way of failure reporting should be used?