Optimize browser rendering on Google Developers has a good article covering this. One key point highlighted twice in that pos that you should always remember is:
The engine evaluates each rule from right to left, starting from the rightmost selector (called the "key") and moving through each selector until it finds a match or discards the rule.
and
According to this system, the fewer rules the engine has to evaluate the better.
Writing Efficient CSS on the Mozilla Developer Network also covers this topic.
So the second one is more efficient in all of your 5 cases since the browser will be doing less work regardless of the amount of content.
In general, I see "optimised CSS" as reduction of the chain depth of CSS selectors to minimize the dependency on the HTML structure. This principle and more is covered in the excellent Scalable and Modular Architecture for CSS (SMACSS), which is essentially a style guide for CSS and not a framework or anything like that. In particular I would take a look at the Selector Performance and Depth of Applicability sections.