So, we actually agree that a character's theme, or narrative story is heavily impacted by those details. Where we disagree is that we need two classes for that I think. For a hypothetical example, let's say we have Jack, who made a deal with with a devil for magical powers, and Jill, who found out that she has the bloodline of a fiend in her family tree, and so she can naturally access magic through it.
Narratively speaking, Jack and Jill's stories should indeed play out differently. But a lot of that doesn't really connect to the mechanics of their class. Jack's patron might come a-knocking, and Jack will need to decide what to do about that. Jill doesn't have that story beat, but might have to wrestle with more inner demons, to make a bit of a pun. A lot of this though is going to be handled outside of the mechanics of the classes however, with the class just there to give the flavor of "I gained magical powers through x" some concrete rules.
So, do they need different mechanics for the powers they gained? Depends on your point of view I guess. Going to your example, Constantine and Raven may have a similar source, but they do have very different powersets. In a hypothetical game with them as characters, separate classes make sense. If Jack and Jill want fiendish themed abilities and spells, they probably are going to have more overlap than Constantine and Raven would however, and so it might make sense to simply have them use the same class. Or not, since the issue I think combining the two classes solves is giving the sorcerer a mechanical distinctiveness it currently lacks, but there are certainly other ways to do so.