I can't even entertain the idea that she didn't. After 7 seasons of Buffy's personal growth (and death, and back to life, and death again and back to life again...), not to mention everything she and Spike had been through, the idea that she'd say those words 'cause she thought she should, or was supposed to, or the occasion may have possibly called for it, nope.
I got pretty choked up with their hands in flames and her saying it. But Spike's response is what shoved the tears out of my eyes.
He had already told her he loved her the night before with the holding her and watching her sleep, "...that was the best night of my life" = "i love you" (well, for me it does).
If anything, I don't believe he didn't believe her.
I think that response was in the Spike way - dealing with not only hearing what he'd been wanting to hear for 3 seasons but knowing that good and bad, they created a history that again, to me, made it true. If he would have responded with "and i love you" etc, I would have felt like leftover Velveeta. And on the Velveeta note, I'd been waiting for the story to arc that way and for her to say it to Spike since the episode "Help" (S:7.04), when Cassie told Spike "she'll tell you one day" or something like that. And even though the hand-holding and flames scene itself spoke volumes to me - more than any dialog could have - "Help" popped in my mind during that and I thought, omg... she's gonna say it... and it was bittersweet.
To clarify, I don't think her love for Spike was anywhere near her love for Angel. If Buffy love were a book, Spike and Angel would be different chapters.