For the voting buttons, what Stack Overflow does is immediately change the button state, but reverse that if there is a problem (e.g. not being logged in, not having enough rep). In other words:
-
User clicks upvote.
-
Image changes to "upvoted" style.
-
AJAX request is sent to the server.
-
If server responds with an OK message, nothing happens.
-
If something goes wrong or user is not allowed to vote, it returns an error message etc. and the vote style goes back to normal.
I think that works fine, but IIRC in Q2A the server returns the HTML code of the button state, so you would need to change the Javascript so that it can change the state instantly. Probably not worth it for such a small improvement.
I don't think the favourites/best answer buttons need spinners either as they are short operations. I was trying to think if there is another way to indicate something is happening on icon buttons like these but I can't think of anything.
I would keep the spinner only to places where you are saving text, like in answers/comments.
Edit: also the spinner doesn't appear to be properly transparent, it looks a bit strange on the blue background: