My only guess is that the memory was only marked as being deleted but that space had not yet been used. For some freak of nature (or compiler) it worked. I would say never trust it but because you do it so fast after the delete, the memory is still good. Remember I can always say
CObject* pObject;
pObject->IsKindOf(RUNTIME_CLASS(MyObject));
Because I dont set pObject to null, it runs, compiles and crashes. In your case, the address was valid. Try AfxAssertValidAddres on the pointer (I think that is the name of it.. i know validaddress is part of it)
matt