Вот совсем недавно в статье "Проблемы освобождения объектов" предлагался способ как гарантировано получить ошибку обращения по адресу nil в случае уже освобожденного объекта. Правда объекты и простые указатели должны быть таки отдельно. Зато даже проверять ничего не надо, само упадет при ошибке.