I’m sure someone can explain the difference between class and id better than me, but essential, use class unless it needs to be id.
As far as Google is concerned, I’m sure you’ve been directed to Google’s guidelines before (if not I can hunt them out for you) but what does it say about CSS there?
ID means identity. It is used to unambiguously identify an element in the html, therefore each must be unique to the page.
Class on the other hand specifies a classification for an element, classes are re-usable, so you may have the same class on many elements within a page.
Probably not. The only problem I see is the misuse of ID, commonly people using the same ID multiple times on a page. This is invalid html, I’m not sure if, or to what extent this affects ranking, but it does elude to poor quality coding.
I don’t know about any SEO differences, I imagine you’re over-thinking this if you’re more concerned about SEO than semantics and maintainability.
I used to use id back when it was easier for JavaScript to use getElementById() but now JavaScript has ways to select elements in other ways.
IMHO a main reason for avoiding id in preference for class is because in CSS id has precedence over class and can cause problems when styling a page.