It's a good rule to make your CSS classes useful and descriptive for a human to read...but what you're seeing here is probably just this; good naming conventions. If your competitor believes that this will help with SEO then they are mistaken.

No. The general rule is things that affect SEO are things that will affect the users experience on the page. Class names do not, in fact they could even slow it down, google recommend short class names

Many modern search engines will not be looking for keywords within your tags - imagine the miniscule percentage of websites that actually customize their tags to cater for search engines and how much unnecessary work would be required to implement tag-crawling as a result.

Instead, make sure to use standard tag names such as a, ul as much as you can without having to result to CSS tricks. These will make your site much easier to crawl, indexing many more pages as a result. Make sure to use heading tags (h1, h2 ... hn) as much as possible over custom CSS font tags as search engines will make sure to emphasize these results later.