Если я правильно понимаю, то reversed будет только один раз. Псевдокодом можно записать это так:
newStr = reversed(string);
for sym in newStr; // ..
То есть тут дважды используется линейный проход, а не линейный внутри линейного, а значит умножать не нужно - сложность линейная.