Я полагаю, что софт и фантомные ссылки приходят с Java. Длинная слабая ссылка (передача true в конструктор WeakReference C #) может считаться похожей на Java PhantomReference. Если в C # есть аналог SoftReference, я не знаю, что это такое.
Слабые ссылки не увеличивают срок службы объекта, что позволяет собирать мусор после того, как все сильные ссылки вышли из области видимости. Они могут быть полезны для удержания больших объектов, которые дороги для инициализации, но должны быть доступны для сборки мусора, если они не используются активно.
Будет ли это полезно для уменьшения потребления памяти вашим приложением, будет полностью зависеть от специфики приложения. Например, если у вас есть небольшое количество кэшированных объектов, которые могут быть использованы в будущем, а могут и не быть использованы в будущем, слабые ссылки могут помочь улучшить потребление памяти кэшем. Однако, если приложение работает с очень большим количеством небольших объектов, слабые ссылки усугубят проблему, поскольку ссылочные объекты будут занимать столько же или больше памяти.