It isn't necessarily that way, but it is conventionally that way. The reason is that each object is meant to be responsible for handling its own state. Having a message to an object leave that object the same but modify another object generally goes against that principle.
This is an old OO idea. You don't modify objects — instead, you ask them to modify themselves.