Код, по смыслу эквивалентный
Object* Func(OtherObject* param) {
Obj2 * param1 = (Obj2*) param;
return param1->Pointer
}
при передаче туда NULL не выдал ошибку. А вернул какой-то ненулевой указатель.
Механизм более-менее понятен, но факт нетривиален...