Ваше понимание очень правильно.
Каждый раз, когда процесс запускается, JIT выдает новый машинный код, который используется до завершения процесса.
Однако также возможно создать кэш машинного кода, чтобы избежать повторения джит-эмиссия. Это известно как NGen