I thought the difference between Spike and Angel was that Spike got his soul voluntarily, while Angel was cursed with it. I'm thinking it's part of the curse that he was suffering so much from it. With Spike seeking out his soul basically for growth and becoming a better man, the situation was different.
Of course not everyone who has a soul is good and doesn't do evil things, but I feel it was more about giving Spike a chance. He was also not some random stranger, but someone she already cared for before on some level, intentionally seeking his soul to become better. That justifies at least a shot to prove yourself without getting stake
And by the way, i think the Mayor mentioned selling his soul, implying he didn't have one anymore.
Plus they decided that Angel didn't go straight into alleys eating rats, he spent time willing to feed on criminals for a few years, then he tried to play at being normal a bit after that
so who knows. Maybe Spike, a century after getting his soul would be a more different being, compared to six months after getting it