Well ..., for starters, without the limitations and context you mentioned, *-choice questions are just shopping list questions.
I am not a fan of closing such questions, just because they are *-choice types, and will inevitably get some POB answers. I do support the concept of trying to get them "focused" so that the OP actually has a good chance of receiving a useful answer, and to avoid the wasted effort of other users chasing the wrong thread with their attempts to provide an answer.
In the main, though not 100% of the time, I think such questions can be re-written to: i) give the relevant context and limitations the OP faces, ii) include the objectives, or problems to be solved, by the final choice, and iii) gather criterion and insights useful to the OP in making their own choice. Written that way the question aims to avoid answers that are basically a list of options with the author's opinion assigned to each one.
In addition, I think we ought to be on watch for answers, to this type of question, or any other, that are opinions. Field reports, what worked, didn't work, or was tried in some fashion, are not opinions - when presented as a report of:
We (I) did/tried <this>, and the results were <that>.
Here's what we (I) learned about <choice> from the experience.
Such a "report," presented in an answer about considerations and criteria for evaluating available options, can be very helpful to the OP. The "opinions" of random Internet users are likely not as helpful.
I do support the goal of turning *-choice questions into better questions, somehow. Obviously, placing the question [on hold]
with that objective is the best way to reach that goal. There are, however, two things that we, as a community, need to have in place before that can be effective.
First, though apparent it must be stated, we need to have not only a consensus that it's the right choice, but a willingness, and commitment, to follow through and VTC such questions by those able to do so. Saying "I agree. Good idea." on this question doesn't mean much if the same users then turn around and answer such questions as presented rather than voting for them to be closed until fixed, and withholding an answer until they are remedied.
Secondly we need to have a "definitive" question, or answer, on Meta that guides the repair of such questions. Something that can be linked to in the comments on the question along with the VTC. The post should cover, in details that are not vague, what such a question should contain, and ask, that makes it acceptable. Pointers as to elements that improve beyond "acceptable" would also be worth having in that "canonical" post. Links to questions which are "exemplar" can also help the future OP repair their [on hold]
*-choice question to get it reopened.
As a final note, the cited question about Prolog as a first language is not a good example of a bad *-choice question. It isn't even about choosing. If the title question is taken at face value, it is a 'Yes' or 'No' question. If the body of the post is considered, it becomes a "why is this?" type of question. The former is strictly opinion, even with "evidence" to support that opinion. The latter is primarily speculation. Unless someone has been on the panel that selected a first language, after including logic programming languages in the "running," none of us can say "why" more universities don't use logic programming as the first language. Our experience may suggest possibilities, but never answer the question.