Their relationship was complicated. It was raw and edgy. It was desire. It was to want and to be wanted. But not necessarily need. It was lust in the very shallow pits of the word. Spike was madly in amor with Buffy, and changed for it, to make him the man he wants to be in Buffy's eyes. Buffy denied it all. She couldn't possibly be in amor with a vamp without a soul.
Granted Spike was chipped at one point, but he didn't change. He didn't have to. I think "the big bad" died when Drusilla cheated on him. Then his life, his world was Buffy. And always had been; Dru had seen it.
Spike was a vampire, yes, but he wasn't all that bad to the Scoobies. He couldn't hurt them physically, but he sure as hell didn't hurt them emotionally. He looked after Dawn because he made a promise to a lady.
I think Buffy was just afraid of what the Scoobies would think because Angelus was a bastard. But there is a minimal difference between Spike, chipped Spike, and Spike with a soul. Buffy knew that and accepted it to some extent. The Scoobies didn't care. Well, Willow was always decent to him. And Dawn. and Tara.
Towards the end, it was mais amor and passion and just the chaste fact of needing to be loved, to amor on a level that sees the soul, and loves the person for who are. It was nothing to do about sex. When you're stripped down and exposed, all that's left is your soul and what you carry inside. Buffy and Spike took that step. A step that angel could never see, because he changed because of her, when reverting back to Angelus.
Buffy loved Spike with all of her heart. I think she just didn't want to believe it. But their hands clasped together on fire, shows their relationship perfectly.
image credit: Buffyworld and Google.