So I ran into a situation today where some production code was failing precisely because a method performed exactly as documented in MSDN. Shame on me for not reading the d
All(x => x.Predicate) is the opposite of Any(x => !x.Predicate) ("Are all cars red?" is the opposite of "Are there any cars that aren't red?").
Any(x => !x.Predicate) returns false for empty collections (which appears natural for the common understanding of "any").
Hence All(x => x.Predicate) should (and does) return true for empty collections.