In general, changing the close reason is a lot of work as you need 5 people to reopen and then 5 people to reclose it, and the 5 people to reclose it can't be any of the people who closed it previously, so you should leave it alone unless it is really necessary.
However mods can do this on their own because of their binding vote, so it is preferable to have them do it. If something needs to be changed, you should flag it for moderator attention, using a custom reason and explain what you think should be done and most importantly why (but you need to be brief as you are limited on characters).
Typically though this action should be reserved for cases where it absolutely needs to be done. The reason for this is because on busy sites, the you'd rather have the moderators working on more important flags. On slower sites, you have more leeway to do this since the flag queue is smaller.
- Is the current close reason dangerously misleading?
- Is the current close reason extremely confusing?
So cases where an off-topic question is a duplicate of an another question, but the first question is closed for another reason, it is not worth adding to the mods workload when you can just leave an appropriate comment.
But if a post is closed as a duplicate of a question that is not a duplicate (and the original still needs to be closed for another reason), it can confuse new users and new programmers, it is probably worth asking a mod to change the close reason to point to a more appropriate duplicate or closed for the correct reason.
And in the cases where the just duplicate target needs changed (closed as a dup of question A, but question B is a better duplicate), the best solution now is to find a Gold Badge holder in one of the tags to edit the duplicate links to add a better duplicate, and remove any incorrect duplicates.