если верить Куно Пфистеру, то такая ситуация сплошь и рядом встречается в компонентно-ориентированном программировании. Готовы ли Вы оспорить Пфистера по этому вопросу?
(Про себя могу сказать, что я не готов спорить с Куно Пфистером, но хотел бы разобраться глубже в этом вопросе)
Оспорить?.. Пусть себе рассуждает... Принцип простой, не нужен компонент, удаляй... нужен - подгружай и используй. Если ОС умная, она сама закэширует компонент при выгрузке, чтобы минимизировать затраты на загрузку.
Тот же принцип справедлив для любых внешних ресурсов: файлов, пайпов, сокетов и пр.
Единственный случай, когда необходим посредник между программой и ресурсом - это в случае разделяемого использования ресурсов, когда
один и тот же ресурс используется в разных программах/в разных частях программы. Но в этом случае опосредовано происходит и загрузка ресурса (и, по-хорошему, любое обращение к ресурсу). Сдаётся мне, что GC для этого маловато... нужна полноценная система с продуманными сервисами.