Traditionally MonoTouch has allowed managed objects to be created without a native peer. The behavior has however been inconsistent between types, and in the case of types from third-party libraries it would result in instances that would, if used, most likely crash the process with a stack overflow.
With this check the behavior will be consistent among all types.