The problems with your friend's phone were probably caused by non-Microsoft code. And just like bluescreens on XP, Microsoft got all of the blame.
Around 2006, I had a Windows Mobile phone that was freezing up almost every other day, as it came configured from Cingular. After resetting to a clean copy of Windows Mobile, the phone would easily run for two months between reboots.
This could be done using a little-known trick: Hard-reset the phone, and wait for it to reflash with the OS. When "Installing customizations ..." comes up, immediately press the reset button. This cancelled the installation of all the "value added" components from the carrier. You ended up with a completely clean copy of Windows Mobile, as it was developed by Microsoft (plus OEM drivers and utilities).
It was essentially the phone equivalent of reinstalling Windows on a PC to eliminate all the OEM preloaded crap. The only difference was that it was the carriers who dictated the preloads on Windows Mobile -- whereas the OEM utilities were reasonably reliable.