I think there's a fundamental difference in "why do" and "why should" answers. We don't know for sure why something does or doesn't exist since we aren't the people making the decisions. At best, we are searching and providing links and summaries. However, should questions can be based on best or good practices that either support or oppose the perspective.
I don't think that "why do" or "why should" should be treated as trigger words. That is, a question shouldn't be closed just because it contains one of these words. However, a question that seems to be worded more in a direction of fishing for opinions should be slanted toward answers based on practices. If there are already a lot of answers, either the answers should be cleared up to remove ones that rely on personal opinion without support from good practices or personal experiences or the questions should be closed as primarily opinion based until it can be cleaned up, if it can. Some things can't be fixed - they are not supported by practice and are entirely preferential, so these should be closed.
In this particular case, I would close the "why do" question as a duplicate of the "why should" question instead of primarily opinion based. I'd also encourage questions about programming language design to go to the Computer Science Stack Exchange, where there are more likely to be experts in the design and design history of programming languages, since that's a particular field of Computer Science. Part of programming language design is about usability of the language for development. I'd want to defer to the true experts on the subject, rather than on my (or other) personal preferences, but I wouldn't necessarily say that questions about the design and usability are off-topic here on Software Engineering.