Assertions Are Pessimistic, Assumptions Are Optimistic (2014)
blog.regehr.org
blog.regehr.org
Also, many asserts are rewritten to provide debugging information, not just crashing the program. Firefox had a bunch of asserts that sent logged information before they died, for example. As a result, you're usually willing to take the performance hit to find out why your program failed, esp when the hit is small (here it's shown to be <10%).