I can sort of buy that David is supposed to be the anti-Charming. James has his “fearless bravery,” and David is anything but. Look at Thomas/Sean, though. Thomas was very loyal to Cinderella. Even after he found out the deal he had made with Rumplestiltskin, he didn’t turn away from her for a second. He said that magic may have brought them together, “but magic didn’t create this love.” (which rings true since both Rumple and the Genie stated the rule that magic can’t make somebody fall in love with you). In SB, Sean abandoned Ashley when he found she was pregnant.
Sean seems to have shaken off his loser-boy qualities and is not only supporting his child, but has committed to Ashley. Is David just taking a longer time to come around? How is it that Sean and Ashley get their happy ending in SB (happier than in FTL really) even under the curse?