I'm not necessarily saying I agree with the current design, but I think I can justify it somewhat.
The main point of putting questions on hold, or closing them, is to disincentivize people from asking questions that are inappropriate ("bad") for the site. We do this by cutting off their main reward: the answers. It's a form of operant conditioning. Strictly speaking, to employ operant conditioning we don't need to have close reasons at all; if we just indicate "good" (open) or "bad" (on hold) for each question, people learn over time what constitutes an appropriate question.
In practice, of course, that would take forever, and we don't want people to have to ask a thousand practice questions to figure out what our scope is. So we help them along with an explanation of why the question is "bad". That explanation could be left in a comment, but if you've ever tried leaving comments to indicate the problems with questions, you find that you wind up using more or less the same few comments 95% of the time. Close reasons replace those comments.
Now, consider things from the point of view of a new asker. A list of different people's names with different unfamiliar phrases is going to be a lot more confusing than a single reason that says "your question is not appropriate because [reason]." Basically, by narrowing down to a single close reason, we give askers of "bad" questions a specific target for the effort they're (hopefully) going to put in to improve the question.
Some questions are inappropriate for multiple reasons, and in those cases the preceding argument doesn't apply quite so well. But I think it still helps to show one main reason the question is inappropriate at first, and have the asker focus on improving that. Additional, secondary problems can be identified through comments. It fits into the natural back-and-forth process that tends to accompany a question being edited and improved.