Ну, я не уверен в этом, но вот что я думаю:
Исполняемый файл .NET может быть скомпилирован двумя способами - в зависимости от платформы и независимо от платформы. По умолчанию они не зависят от платформы, и код (как уже упоминалось в других ответах) при запуске программы приводится в соответствие с кодом конкретной платформы.
Теперь, например, если ваш исполняемый файл является одним из этих независящих от платформы, и вы запускаете его на 64-битной ОС, он будет переведен в JIT в 64-битный код, верно? Таким образом, он сможет адресовать более 3 ГБ ОЗУ.
То, что я пытаюсь сказать, - я не думаю, что это вообще имеет значение, что написано в заголовке PE. Фактический объем доступной оперативной памяти определяется средой выполнения .NET, которая, в свою очередь, смотрит на текущую платформу и выдает лучший JIT-код, какой только может.
Думаю, вам не стоит беспокоиться о ключе / 3GB, так как .NET позаботится об этом за вас. Доверьтесь .NET! :)