I don't think it's to do with the CLSID because that shouldn't change. It's probably because Windows will lock down the executables etc when it's registered (or keep a copy of them). You must stop the service because otherwise since the executable is running you can't overwrite it with the new one. As to unregistering them I think it might be because (in the case of DLLs) Windows may keep another copy of them somewhere and by reregistering them you're saying that there's a new copy available. Second Part of Question: As long as there are no compatability issues then replacing it should work as far as I know.
I have no idea what I just said. But my intentions were sincere.