How do you re-unwrap an object and have it be the same scale?
Well, this is a fun one.  

What is going on
It seems, unwrapping depends on your shader's image texture, not the texture in the UV editor.
Again.  It's not about the UV editor, it's about the shader editor.  



I have three textures with different aspect ratios. 1:1, 2:1, 3:1.
But the UV map ratio is always based on the image selected in the shader editor.

  



So, in some cases, there's no way to match the correct aspect ratio.  

Example:
2:1 in UV editor, 3:1 in shader editor.  And no way to match the correct ratio.
Correct aspect ✔ doesn't work either - it only switches to 1:1 ratio.





Solution
Check what image is selected in the shader editor. That's what drives the UV map aspect ratio.
And then match it to the image in your UV editor.

Note
The above is a reason why it sometimes works, and sometimes doesn't.
Still not sure if it's a bug or not, but either way it's pretty messed up :).