IMO, это сделано, чтобы сделать вещи немного яснее - ваша более простая форма зависит от порядка дел, поскольку (or x)
может соответствовать как второму, так и третьему правилам. Таким образом, создание взаимоисключающих случаев облегчает чтение и делает их более надежными.
(Кстати, там есть более тонкий момент, о котором я изначально думал, что вы спрашиваете: почему бы не упростить его еще дальше:
(define-syntax or
(syntax-rules ()
((_) #f)
((_ e1 e2 ...)
(let ((t e1)) (if t t (or e2 ...))))))
?)