Yes, Oxygen does not evaluate the range during compilation. The end-point is usually specified by a variable.
Here is a high-performance equivalent, using bytes, like C
string text="Hello World"
sys le=len text
string revtext=nuls le
byte b at (strptr text)
byte r at (le-1+strptr revtext)
sys x
for x = 1 to le
r=b
@b++
@r--
next
print revtext