“He’s my friend.”
“So was I.”
I don’t mean to keep picking on Zack Snyder, but man, that is so much better than, “WHY DID YOU SAY THAT NAME?!”
As hamfisted as it was, I don’t think the ‘Martha’ stuff is the biggest problem with the confrontation between Batman and Superman.
Civil War works so well because the conflict is genuine. There’s an ideological conflict that’s been at play for nearly the entire runtime of the film, and then right at the end, we find out that the conflict has personal stakes, too. Bucky killed Tony’s parents. And Cap knew about it. The conflict there is not just real, it’s inevitable. Neither side is really right or wrong. And there’s no resolution. It’s damn near perfect.
Compare that to BVS, where the conflict is entirely manufactured.
On Superman’s side, it’s because someone Clark loves has been kidnapped and held hostage.
I actually think Snyder did a decent job of setting up Batman’s side of the conflict. (I’ve actually written about that here.)
But ultimately, the conflict is still artificial. There is no real conflict between Batman and Superman — the conflict exists only because neither of them see each other for who they really are. As soon as they do, as soon as the truth is revealed, the conflict immediately resolves itself.
Which is the exact opposite of Civil War. The truth doesn’t resolve the conflict between Tony and Cap — the truth is what lights the fuse.