work around reversed(range()) bug by disabling optimised looping for non-trivial step values (ticket #763)