Most Arduino projects involve sensing the physical world or controlling the physical world (hopefully with some feed back).  When sensing the physical world, it is best to add extra code to protect the project from locking up.  And then, even more code concerned with what to do when the unlikely happens.  Unfortunately, many project leave out this extra code.  Reasons vary:

 - The project is a prototype and the effort is thought necessary.
 - There is no time in the schedule to create this "extra code".
 - The unexpected event is thought to be an impossible situation.
 - There is no room left to add code that is not expected to run.