Because of the way I picture it in my mind. An object is a big box with many little boxes in it. Each of the little boxes is a member of the class and holds a value. The setX method puts a new value into the box labeled x, so obviously the old value needs to get out, right? This is what a setter returns in my mind ;)
It should be noted that this is the behaviour of many functions, such as set_new_handler, SetWindowLong(Ptr) and SelectObject.