I think DmC has an overall good story, but I'm always bothered by something while thinking about it. The characters are the primary problem for DmC imo.
Dante starts as a brat who doesn't care about anything but himself, and is given his memories back by Vergil in his former house. Then he join the Order to fight and kill Mundus for taking his mother's life. But I never feel like he truly change in the story until the very end. There is little interaction between humans and Dante, and when he interacts, he look like a douch (the scene where he slap a man's can on the streets for example). In the final battle with Vergil, he suddently state that he will protect humanity, but we never get to see any change before that. The talks with Kat are always about her or Dante, and Vergil rarely discuss about humanity with Dante. So having suddently Dante claiming he will protect humanity is kinda unearned for him. Having a scene where Dante is critically wounded during a fight, then rescued by a group of humans, have some time with then while recovering and listen to them could have developped him. Also, having the group composed of teens sended into a demonic asylum to break their will could have resonated with Dante himself, giving him sympathy for humans.
Vergil could have been interesting with the mentality of "anything to earn victory". He doesn't seems bothered when sending his brother on dangerous mission, is willing to let Kat die to protect himself and Dante, and even his own men are below the information he have in his headquarter. He is even willing to shoot a pregnant woman in the back. But the main issue with him is that he never show his power before the final battle, and is never seen as a force to be reckoned with. During the assault on the Order headquarter, he never fight and is hiding behind a barrier. He mostly guide Dante in Mundus lair, and during the fight with Mundus, his main contribution is to slam door because the player can't. He then get sucked in Mundus avatar and is saved by Dante. All of this only make him look like someone who can't hold his ground during a fight. So when he step forward against Dante, I was mostly like "so can you actually do something alone ?". Vergil should have defended the headquarter in a subtle way, like killing demons without being seen or laying traps all around the installation. Also, during Dante's mission, the doppelganger should have been used to help Dante. Like Dante bump into a dead end and can't go forward, then having a way open and the doppelganger standing in the background just a second before disapearing, or having glimpse of it during mission to show that something got your back, then having the reveal that it was Vergil helping Dante during the last fight. The DLC does a nice job of turning him into a villain and developping his character, but I'm disappointed that the only boss fight is Vergil 2.0 and not Dante.
For Kat, she was the human supposed to change Dante, but she disappear in the background after the first mission and is only here to open portal and tell the sad story of her past all of a sudden. I never felt a connexion between her and Dante. Only Dante forcing Vergil to go and save her. Her powers as a witch are cool, but kinda underused.
For the demon boss, they are mostly generic big bad demons. The monkey is ok as an introduction, even if the fight is slowed down by the knife parts which take forever and seems kinda pointless.
The succubus is a big letdown, another generic boss with no gimmicks or anything plus having the worst prefight talk of the game. Why not have her start as a beautifull woman and have the fight start in an huge beautifull arena only to revert to the arena we got when the succubus take too much hit and can't maintain the illusion ?
Bob Barbas is the only one with a nice gimmick. Having Dante sucked into the new's video fighting demons while Bob is cool and fit well in the fight. Plus Bob is introduced early in the game and presented as Mundus's puppet and a jerk leading the media, so it feel nice to punch his face.
Lilith is ok, the gimmick fit nicely, but the fight is kinda generic. Maybe having Lilith be more of a punishing mother toward her son and putting him in a frenzy during the end of the fight could have fit.
Mundus is the most disapointing fight of the game. He is presented as the big bad villain doing bad things and having godlike powers, but when the fight starts, he turned into a big pile of s*** and become the easiest boss in the game. Just why ? Why not have a second phase where Dante jump into Mundus avatar and fight the real Mundus in an epic battle alongside Vergil ? Another good idee would have the avatar chase you into Limbo during missions. Like when Dante stay into Limbo for too long, Mundus can sense him and chase after him. It would have gave him a presence during the whole game and showed that his sight extend far beyond.
For the rest, the game is really good. The gameplay is excellent, the Limbo are a really cool concept and well used during the game. Generic enemies are nice to fight in the Definitive Edition (the color based enemies in the base game are such a pain...). It's just sad that NT didn't get to show their vision for the serie because of the crappy part of the fandom and Capcom pushing their back.