I notice an apparent asymmetry between the two processes of closing a question or voting for reopening. In the former case, a reason for the vote must be given. In the latter, it is not possible to explain the reason. What is the rationale for such difference? Wouldn't be better to know why there is a request for reopening?
I think the system makes sense like it is.
The way I see it, a question is basically "on-topic" unless it falls within some off topic close reason. There are specific reasons that a question is off topic, and those reasons can typically help improve a question. Casting a close vote just means you do not think the question is on topic in it's current state.
The reason for reopen votes should essentially always be "It does not fall into any category of an off-topic question.", so I don't think there is really a need to make users choose a reason for this decision. Essentially, being open is the default for questions, and users typically don't have to explain or select a reason why their questions fit. This should apply for reopening as well in my opinion.
When questions are closed, two things happen:
- If there is anything nontrivial or non-obvious about the closure, it gets discussed in the comments. These comments are for the benefit of people who are voting (or not) to close the question.
- When the question actually does get closed, it gets a banner stating that it is closed and with a brief explanation as to why. This banner has two different primary targets:
- The original asker, whose question has just been closed. For one thing, s/he deserves the benefit of an explanation as to why this happened. But, more importantly, the banner is a call-to-action and an initial resource that points the asker to the resources s/he can use to fix the question.
- Future visitors, who can see the closure and its reason and use it to get a better model for the scope of the site and the types of questions that are and are not on topic.
In contrast, when a question is reopened, the closure banner is removed along with all explicit system traces of the closure on the surface level of the thread. The closure-then-reopening cycle is documented in the edit history and on the question timeline, should anybody wish to delve into those, but in general the question is considered an on-topic open question no different from a freshly-asked one.
As such, there is no point in having an official banner that explains why the question was reopened once the process has been completed $-$ it would be actively harmful and it would directly detract from the ethic that threads on SE are just questions and answers, without any more superfluous meta commentary than absolutely necessary.
On the other hand, in the run-up to reopening, as the question is discussed, potentially edited, and voted on, any discussion regarding whether it should be reopened can happen in the comments. As a general rule, whenever nontrivial cases come up, this is what happens. If anybody wants to know why there are people that want to reopen the question, they can just look to the comments section.
You've already partially responded to this idea:
Not always reading comments is clarifying.
... so what makes you think that having a "canned" reason from a tightly-defined set would be more enlightening? With due apologies, it simply does not make sense.
Moreover, there is really nowhere for the information to go. If I am forced to decide on a reason for why the question should be reopened, what should happen to that bit of information? It cannot be shown publicly as a message from the system, because at that stage it is just a partial vote without a sufficient community quorum. The only real place where this can happen would be... as a comment.
More importantly, there is no denying that reopening questions is an uphill battle, so unless it's absolutely obvious that the question has been fixed, there is a strong onus on the reopen voters to argue for the reopening in the comment thread.
When I see a vote for reopening, quite often I ask myself "why somebody thought it could be reopened?" Clearly there is a disagreement with the original vote. But in many cases it is not clear the reason.
If it is not clear to you, then that is just a failure of communication on their part. They needed to convince you that you should vote with them, and they did not explain it well enough. On this site, nobody is forced to explain their votes $-$ in this particular case, those people chose not to, and that's it.
As a more general note: this type of feature is part of the core Q&A engine behaviour that works for the entire Stack Exchange network, and this community has no control over it. As such, it is basically pointless to ask about it here $-$ the correct venue is Meta Stack Exchange. Even if you did manage to convince us that your proposed changes to the mechanisms are sound, the most that this community can do is to tell you "yeah, that could work, you should post it over on MSE and try to get attention to it from a developer or community manager".
Wouldn't be better to know why there is a request for reopening?
Not really. The only reason is "I believe this question follows site policies and guidelines." Additionally, if you are choosing to reopen you think that the question is not what the close reason says it is in its current/edited form (assuming you are not those users who vote to reopen just to fight policies they do not like).
Of course I could be overlooking something. If you can propose a good way to give reopen reasons that are unique and valuable then you should propose them to help in the discussion.