On multiple occasions I have seen code that was modified so many times that odd cruft was left in that didn't need to be there. People often only want to change as little as possible because they get chewed out if they break something that used to work. Cleaning code not related to immediate change requests can get one in trouble in many companies, so people build up the habbit of changing as little as possible.
I don't really know C++, but I assume that "if(foo->bar != 0)" can be replaced with "if(foo->bar)".