Let's face it, James Marsters dragged Joss Whedon kicking and screaming to accept Spike as something other than a two-dimensional villain, and James did so largely because he wanted to stay employed. Thank God he did, because who wants two dimensional characters when you can have multi-faceted and deeply complex characters?
I think, after a while, the fans and the actors made Joss a better writer. He may have had good ideas, but actually seeing people execute those ideas gave him inspiration to actually put flesh on those characters, and the fan response made him come to terms with that being a better course of action.
I like Joss's work, but he does strike me as someone deeply up his own ass most of the time. Many seasons and many years later, I think Joss is finally appreciating the better character construction in Spike and Spuffy, and possibly allowing some humility in that he was actually improved by real-life people. Writers should be improved by real-life people! It's been preached relentlessly in creative writing for ages! He just needed to let go a little. I think he's finally there, though, and though he may be trying to straddle two fandoms a bit, I think he knows the Spuffy arc is creatively the better ship.