there is no reason

but there is a bug, stride can be negative which is not handled, funnily it still works as it wraps around the address space and arrives at the right element :)
but I guess that is not standard compliant.