well, in c# you do actually use pointers, tho not explicitly. Think of delegates, anonymous types etc etc. the garbage collection in c# can also take a hit if you are not managing your use of these reference types efficiently.
in obj-c, the playing surface is a little more exposed. I'd imagine that approach has as many cons as it has pros for exactly the reasons you stated above re the danger of memory gpf's etc.
slowly slowly, catchie monkey :)