Q:

Why does Objective-C allow a successful call to null objects? 

What is the use of this ( besides the non crash part ) ? 
I want to know in terms of thinking process behind such design. 

A:

It's a design choice.  And in Objective-C terminology, one "sends messages" to objects, instead of "calling methods".  So you could say sending a message to an object that doesn't exist has simply no effect.  If you address a real letter to a person that doesn't exist, no one will receive it, no one will respond or do anything.