Поскольку вы связали объяснение MSDN, вы знаете, что / Gy гарантирует, что все функции упакованы в их собственный COMDAT. Основным преимуществом этого является то, что если у вас есть идентичные функции, компоновщик может свести их все в один реальный фрагмент кода («свертывание COMDAT»). Это может иметь очень большие последствия, когда у вас много идентичных функций, что часто бывает, когда вы пишете современный C ++, насыщенный шаблонами.
Помимо меньшего размера результирующего исполняемого файла из-за свертывания COMDAT и исключения несвязанных COMDAT, нет другого эффекта / Gy. Точнее говоря, это не помогает уменьшить межпроектные зависимости.
Стоимость - небольшое увеличение времени компиляции (аналогично другим флагам оптимизатора). Обычно это не то, что вы заметите.