I wasn't disappointed in DMC 5 story, but I think many things are poorly handled.
One of the most disappointing thing is Urizen as a antagonist. I'm think he is a good representation of Vergil demonic side and the dark side of Vergil with his obsession for power and denial of humanity as a source of power (the scene were he claims he just need more power after his defeat at Dante hands and refuse to accept that Dante is right is well made imo). He is almost a parody of Vergil obsession at some point, like when he claim to be absolute power and doesn't need a name. But the fact that he don't have his own attack and mostly use others boss attack just feel off. Also why doesn't he use the Yamato ? At the last fight, he doesn't have it at all. I think having him use a twisted version of Yamato at the last fight would give him a really good moveset and show how twisted Vergil obsession was.
Another thing poorly handled is the Sin Devil Trigger. In the game, it is just used as a power up to make the story go on. But it is SO poorly introduced. Dante go into his old house, and decide to impale himself with Rebellion because "Vergil did it with the Yamato". And how lucky, he got Sparda on his back and here we go, Devil Sword Dante and SDT acquired and now he is stronger than Urizen and the story can continue. It's so cheap and reward Dante for just doing a stupid thing. And also : WHY Vergil have the SDT ? He didn't make his own sword, didn't absorbed a powerfull Devil Arm, so why ? The fruit gave him the SDT ? But it surely didn't gave anything to Urizen. The only reason Vergil got it is because without it, Dante would just kick his ass.
I feel like the original concept for the SDT would have been far better. Dante becoming far stronger, but gradually losing his humanity and becoming a feral beast. And for an alternative introduction :
Dante have the SDT at the start of the game (like in DMC 2), and is outmatched by Urizen. So when Nero is defeated, Dante decide to use it despite having Trish, Lady and Nero in the room. He easily break trough Urizen defence and put him down. Urizen then see how feral Dante has become, and trick him into attacking Nero. Dante realise too late what he is doing and cancel the SDT at the last second, but is now vulnerable, allowing Urizen to charge a powerfull attack and kick Dante out of the Qliphoth. Meanwhile, V pull Nero back and they flee as Urizen charge his final blow.
When Dante awaken, he realize he can't just run at Urizen in SDT, as Urizen will use his lose of control to outmatch him. So he seek something to keep his sanity when in SDT. He eventually got into his old house, and start searching for a clue at Sparda's room. He eventually find a note addressed to him and Vergil by Sparda, explaining the hidden property of Rebellion and Yamato. he realize that Vergil used this knowledge to split himself in 2 with the Yamato, and that the Rebellion is the opposite, allowing to fuse demonic power with oneself. So he forge the DSD by impalling himself and absorbing the Sparda, and realize that the DSD allow him to keep his sanity for some time in SDT. Then he fly at Urizen and save Nero, showing that he can now use the SDT with limited time. He then force Urizen to retreat.
Finally, the last encounter with Urizen. Urizen eat the fruit, and tranform into a pseudo SDT form. This form is an incomplete SDT because Urizen is only the demon half of Vergil. Ironically, Vergil decision to discard his humanity prevent him from reaching his full potential, and Urizen is defeated. The return of Vergil and how he is able to use SDT as well is now explained. And Vergil can't fully control himself in SDT, the game show his by him only flying away and charging in SDT, opposed to Vergil usual fight style.