A mailbox handle has to be provided to both components for one to send objects to another. The actual mailbox is often instantiated at environment level and hence if the connection is not made, each component basically has a null mailbox handle. In TLM, the ports are instantiated within each component and so they are not dependent on the environment to provide it with valid handles.
Also in TLM, one component calls a method that is implemented by the other component which again is not a hard requirement for the code to compile. In a way it makes both components independent of whether or not the TLM port is properly connected or established, just that if the connection is not made, the object will not reach the other.