I actually think Xander was friendlier with Spike than he was with Angel, and Spike didn't even have a soul. So considering, I don't think Xander was too harsh. Also, his hate for Spike was completely justified, whereas his hate for Angel was mostly jealousy (not talking about Angelus). All in all, I love Spike, but Xander had every right to hate him if he wanted too. And to be honest, I think Xander and Spike actually have some very nice moments and I think they have good chemistry.
Also, if Spike was able to defend himself, I don't think they'd let him be a part of the gang, and they would probably already have staked him. You can bet that if Spike laid one hand on Xander, Buffy would destroy him.