From the docs:
Workflow Id: A unique identifier for a Workflow Execution. Temporal guarantees the uniqueness of an Id within a namespace. An attempt to start a Workflow with a duplicate Id results in an already started error.
Assuming a reuse policy of Reject Duplicate:
Does temporal guarantee this uniqueness for the duration of the retention period or forever? Do archival settings affect this at all?
The uniqueness is guaranteed while a workflow is open and then after it is closed up to the retention period.
I filed a GitHub issue to separate out these two periods.