¿Por qué la resta es más rápida que la suma en Python?

Estaba optimizando algunos códigos Python y probé el siguiente experimento:

import time

start = time.clock()
x = 0
for i in range(10000000):
    x += 1
end = time.clock()

print '+=',end-start

start = time.clock()
x = 0
for i in range(10000000):
    x -= -1
end = time.clock()

print '-=',end-start

El segundo bucle es confiablemente más rápido, desde un bigote hasta un 10%, dependiendo del sistema en el que lo ejecute. He intentado variar el orden de los bucles, el número de ejecuciones, etc., y todavía parece funcionar.

Desconocido,

for i in range(10000000, 0, -1):

(es decir, ejecutar el bucle hacia atrás) es más rápido que

for i in range(10000000):

incluso cuando los contenidos del bucle son idénticos.

¿Qué da, y hay una lección de programación más general aquí?

Respuestas a la pregunta(10)

Su respuesta a la pregunta