So I had a project that supported iOS 4, so all my IBOutlets were __unsafe_unretained
even IBOutlets that were in the nib but outside the controllers main view
You are correct, the app will crash when trying to access deallocated objects through your stale __unsafe_unretained references.
The reason it doesn't is very likely because the objects are being referenced by some other part of your app with strong references.
Try running with zombies enabled, that should cause an immediate crash when dereferencing the presumedly stale pointers.