Without a stable identifier, an automated system cannot tell whether a timed-out request succeeded. With one, the broker rejects the duplicate and state stays consistent — which is the difference between a safe retry and an accidental double position.
Each amendment normally gets a fresh ID that references the original, giving a full chain from first submission to final fill.
Example: a bot sends a buy with ID 20260911-A7F3-001. The network drops the reply. The bot retries with the same ID; the broker responds "duplicate ClOrdID" and nothing extra is bought. Had it generated a new ID, it would now hold twice the intended position.
Related: fix-protocol, api-trading, execution-report, cancel-replace