Not sure if it's public or not - did I miss a post from Hyatt about it - but I just discovered Safari has extended the grammar and features of the :not() negation pseudo-class from the CSS 3 Selectors module. At least my Windows version of Safari does it. In the spec, the argument of the functional pseudo-class must be a simple selector. In other terms, it can be an ID selector, a class selector, an attribute selector or any other simple selector but not a combination of several simple selectors. :not(#foo) is valid while :not(#foo.myClass) is not.

Safari extends the spec and allows the argument to be a sequence of simple selectors like the :not(#foo.myClass) above. Well. It's NOT only a matter of readability and conciseness for CSS because

A > B:not(CD) { ... }  (where A, B C and D are all simple selectors)

is not strictly equivalent to

A > B:not(C), A > B:not(D) { ... }

and is not equivalent at all to

A > B:not(C) { ... }
A > B:not(D) { ... }

in particular if A B and C are valid but D is an invalid simple selector...

The specificity also matters, and I suspect (and hope) Safari takes under consideration all simple selectors in the argument of that extended :not().