Enumerable.Distinct
не определяет, какое значение возвращается - но я не понимаю, как было бы разумно возвращать что-либо, кроме первого. Аналогично, хотя порядок не определен, имеет смысл возвращать элементы в том порядке, в котором они указаны в исходной последовательности.
Мне обычно не нравится полагаться на неопределенное поведение, но я думаю, что это вряд ли изменится. Это естественное поведение - сохранять набор того, что вы уже вернули, и получать результат, как только вы видите новый элемент.
Если вы хотите положиться на это неуказанное поведение, вам следует упорядочить элементы по дате (по убыванию) перед использованием Distinct
. Кроме того, вы можете использовать группировку, а затем упорядочить каждую группу соответствующим образом.