Replace contents replaces the internal contents of the Smart Object, embedding the content. No external file association is present. If the Smart Object is already a linked Smart Object, the association to the external file is broken and the external file contents are embedded in the Smart Object.
Relink to file changes the Smart Object from an embedded Smart Object to a linked Smart Object associated with an external file. If the Smart object is already a linked Smart Object, it merely changes the associated external file link. If you made changes to the external file outside of Photoshop, you'll need to use this option to update the Smart Object.
The primary difference is how the Smart Object is referenced, either embedded or linked. You won't notice a whole lot of difference within Photoshop itself, but you will notice a difference if you were to edit the contents/linked file of the Smart Object.
At least, that's my understanding. I'm not an Adobe dev though.