The backwards downloading sounds like borg code, so I like it.
I think it is easy to implement (I see no real probs with memory mapped IO)... but a) it is not yet part of any HTTP1.1 or Gnutella protocol and b) it does statistacly help only in 50% of all cases (when an far behind segment is faster finished then the previous).
Especially "b" is no argument against it, it is still an improvement and "a" is also none argument against... since Gnutella is in active development! If an improved protocoll will fit better to the needs of P2P then I look very positive on it, together with an HTTP1.1 or v0.6 handshake it could also be full backwards compatible.
It is a nice idea IMHO. Greets, Moak