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.
3) See #1, `hyphens-rule`