public Custom CustomProp=>new Custom();
переводится методом getter компилятором:
public Custom get_CustomProp()
{
return new Custom();
}
Таким образом, нет ссылки на созданный экземпляр Custom
, хранящийся в вашем классе. Не о чем беспокоиться, вы (код, который вы показываете) не мешаете ГХ собирать объект.
Но, конечно: зависит от того, подходит ли созданный объект для GC или нет, зависит от того, что вызывающий абонент вашей собственности делает со ссылкой. Пока активная ссылка где-то хранится, GC не будет собирать объект.
И - как прокомментировал Марк - нет такой вещи, как "маркировка" объекта для GC. Объект готов к GC (проще говоря), если на него больше нет ссылок.
Тот факт, что ваше свойство вызывается во второй раз, не влияет на «коллекционирование» ранее возвращенного экземпляра.