To specifically address your claim that pointing out cognitive dissonances is ad hominem, I don't think it is. Ad hominem is when essentially you attack the person instead of the argument. When I point out cognitive dissonances, I have no intention of addressing the person making them, but to address the argument. It's like this: if you get straw manned, pointing out that the person erected a straw man is not ad hominem. Pointing out the straw man is useful to understand what is and what isn't addressing the arguments and it can help keep the subsequent arguments relevant to the original arguments.