Not the best analogy - Just because the symptoms of two people are the same, it does not mean that the disease/cause of disease is the same.
A software bug is an error, flaw, failure or fault in a computer
program or system that causes it to produce an incorrect or unexpected
result, or to behave in unintended ways. Most bugs arise from.....
A bug is a flaw in code and it has symptoms/effects. A bug is not the symptom. A bug is the error in the code. Just because the symptoms are the same, it does not necessarily mean that the same flaw is causing the symptoms.
My understanding is that you should re-open a bug when you know for sure that a bug is caused due to the same piece of code. This could happen when the code behaves correctly in all testing scenarios/test cases, but does not in a new test case or test case you did not think about earlier. This kind of scenario might not be common.
The other scenario is that the same symptoms are caused by new flaws i.e new bugs in other parts of the same code or even in other systems that affect that code.
So, the safest bet is to open a new bug when same symptoms occur. If you see that the same old code is responsible for the bug, then close the new bug and re-open the old bug. If not, then let the new bug remain and link it to the old one.