Надо разделять объект и ссылка на него. Объект может быть 1, а ссылок на него десятки.
Новый объект создаёт только операция сложения, а не приравнивания.
Qualiant, вопрос был в том чтобы проверка была один раз, а не при каждом вызове. Да, результат проверки можно как-то кешировать. Ну а так в общем случае ничем.
Виталий С, Нельзя это описать в одном ответе на тостере, это целая наука. Тут нужен опыт в структурах данных, их представлении и популярным методам упаковки, а то и вовсе реверсинжинирингу программы.
Вам же остаётся только методом научного тыка менять рандомное значение в файле и смотреть его последствия.