"Chosen by someone who doesn't check to see if a "new" call returned a null in his production code..."
'new' doesn't return null when allocation fails. You can make it do that, but it really clutters your code. The default behavior should be to throw bad_alloc. If you think its even remotely possible that this might happen, you should probably call set_new_handler and set things up so the new handler can actually make some room somehow. You should always use smart pointers - no raw pointers. You should set things up so that allocations cluster within try blocks so as to mimick generational collection via stack based smart pointers.
Precious few people know how to do this. I'll lay money that your new guy doesn't. I know you don't. You're right - you. are. fucked.