We code our games and put in asserts to catch when things go wrong. We put the game to the test, then when it comes to release, we turn off asserts and go about optimising and submitting the game/app to the testers/users.
So, when you train to ride a motorcycle, you should wear a helmet and jacket, special boots, because you don't know how to ride. But once you can ride, you might as well go around in flip flops and shorts.
Why don't these two things match up?
In console games, we've got to make the game work. Almost 100% or else. However, during our 99% of the time building it before final release day, we should leave asserts on even in the release code. I'd go so far as to say that as games can be patched on consoles now, it would be good to have a crash actually let the user submit a bug report. Just like windows apps keep on trying to do, but instead of actively doing it, maybe we should build it into the game so it silently reports bugs if it can. A bit like "document recovery" if you like.