Seems that your battery would fail when you need it the most: namely, in the middle of nowhere with no cell coverage.
Another commenter speculated that when you're out of service, the software correctly identifies that there is no tower to connect to and stops trying. But when you're in service, the code repeatedly tries to do the 3G handshake because it can see a valid tower.