Just to start off: class names have absolutely zero impact on anything to do with SEO.
1) While generally this comes down to personal preference, I’d argue that the majority of the industry would use dashes `some-class-name` over any of the other options.
2) It depends on what the *generic* term is. If you named something `column-a`, I’d say that’s too generic. What is the content inside? Even something like `main-content` while looking generic has a better indication of what it contains.
I dont ever style ID’s either. I normally attempt to make a class for the style rather then styling the element (in case i need to add a different element later on). My primary use for ID’s is in use with JS.