Spike was pretty good
Spike was great, but not for Buffy. She'd have been emotionally babysitting him for the rest of her life. It's the Riley problem in a new form.
He was at points outright emotionally abusive, and so was she. They were a terrible fit unless you subscribe to Joss Whedon's idea of 'Darkness' being beauty.
They hurt each other and use that vulnerability to make the other do what they want.
It's true, they were both emotionally abusive and machiavellian with eachother, but I don't see either one ever being able to be in a relationship with anybody that isn't emotionally abusive in some form. I see the bigger issue here as the power imbalance. As much as Angel is TRASH, he and Buffy worked better than any of her later relationships because she was able to treat him more as a peer than a doting sidekick.
Despite the fact that Buffy and Spike are by far my two favorite people in the show, their romance arc was ill-planned, awkward, contrived, and I feel it neutered Spike as a character. As a depthy, charming, sympathetic villain who inadvertently did more damage by being emotionally honest than he did through his compensatory ambitions, he was spectacular. While he retained some of those strengths in the later seasons, his potential was undermined and his brilliance as a character overlooked for the sake of a forceful and uncomfortable attempt to please the fanbase that never should have been more than lightly entertained. The gags in Willow's accidental spell episode and Faith's bodyswap episode were good on their own, seasons five and six were just beating that dead joke until it was fucking oatmeal.