After searching, I know this has been discussed multiple times, for example here: https://bitbucket.org/site/master/issue/5179/add-a-status-of-closed-to-issues
Each time the decision is something like "We have decided to keep the issue tracker as simple as possible", without any reasonable explanation.
HOW COME ADDING ONE MORE "CLOSED" STATE WOULD MAKE THE ISSUE TRACKER NOT SIMPLE ANYMORE? It is so simple to implement this new feature (just add one more statue, you don't even need to change your issue system's source code), it is also simple for end user to use it, and it is even as simple as right now if an end user decide to not use it. So what is the logic behind the "keep it simple" answer?
My guess is that the issue tracker was originally designed for (and perhaps by?) solo developer, who takes full authority to say whether a bug is done; when he said it is "resolved", he means "closed". This assumption is fundamentally wrong when a project becomes serious and involves QA team and management team.
Please, bitbucket team, wake up.