"It stops the extreme values having undue leverage (influence)." - Yeah I see the point, but wouldn't standardizing the data have the same effect?
"However, there are problems with logging 0." - Yes, log(0) can not be defined right? Usually what do you do in this case? Just leave 0 as a data value?