Это полностью зависит от того, что на самом деле делают методы, помимо изменения этого объекта.
Например, объект, в первую очередь связанный с хранением некоторого состояния в памяти, может, например, не иметь ничего, связанного с сохранением этого состояния где-либо.
Методы могут, например, загружать данные из базы данных и обновлять объект этой информацией.
Однако!Поскольку я программирую в основном на C # и, следовательно, на .NET, который является полностью объектно-ориентированным языком, я на самом деле написал бы ваш код следующим образом:
var o = new MyReferenceType();
SomeOtherClass.DoSomeWorkAndPossiblyModifyO(o);
SomeOtherClass.DoYetMoreWorkAndPossiblyFurtherModifyO(o);
//now use o...
В этом случае фактическое имя этого другого класса (илиэти другие классы, если в них участвуют 2), дали бы мне большую подсказку о том, что на самом деле происходит и / или о контексте.
Пример:
Person p = new Person();
DatabaseContext.FetchAllLazilyLoadedProperties(p);
DatabaseContext.Save(p); // updates primary key property with new ID