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