Да, а не должно?
Мне тоже казалось что выражение Date.parse(d) === new Date(d).valueOf() должно быть истинно, это как бы следует из нормальной человеческой логики. Ведь конструктор объекта Date, если у него на входе строка по идее должен сделать то же, что и Date.parse. Но как всегда дьявол в деталях. В JS максимальная точность Date - единицы миллисекунд. И v8 эту точность устанавливает в алгоритме парсинга, поэтому Date.parse возвращает целое число всегда, а JSC - нет и в RN Date.parse('2018-05-16T22:00:00.123456789Z') вернет 1526508000123.4568 😉