I don’t consider whether the first or the second of these is currently intuitive as particularly relevant (people always adapt with time). With rules, both are clear:
// Ranges always go up. `step` indicates step direction.
(0..5).step(-1);
// Ranges may go up or down. Step direction must agree
// with the range.
(5..0).step(-1);
What is relevant is how inverting the range interacts with the [a, b) set notation by inverting it. Especially if the triple ... is added meaning [a, b]. This is much less obvious than the number order.
// Sometimes the right is skipped. Sometimes the left.
(0..5).step(+1) // [0,5)
(0..5).step(-1) // (0,5] in reverse order
(0...5).step(+1) // [0,5]
(0...5).step(-1) // [0,5] in reverse order
// Only the right number is ever skipped.
(0..5).step(+1) // [0,5)
(5..0).step(-1) // [5,0)
(0...5).step(+1) // [0,5]
(5...0).step(-1) // [5,0]
Of note: English speakers always read text left to right. Subverting the order requires extra krow (work: read right to left).