Why do files download out of order?

Why in version 6.50 Build 3126 do files download out of order? and for that matter why do the segments inside each file download in seemingly random order?
For example a download on 2014-01-06 from a.b.teevee using ssl-us.astraweb.com servers.
The file download order is (I reversed this from the Files List):
I.have.3CD0D84F.two.balls.107.hdtv-lol.par2
I.have.two.balls.107.hdtv-lol.r03
I.have.two.balls.107.hdtv-lol.rar
I.have.two.balls.107.hdtv-lol.r01
I.have.two.balls.107.hdtv-lol.r05
I.have.two.balls.107.hdtv-lol.r00
I.have.two.balls.107.hdtv-lol.r07
I.have.two.balls.107.hdtv-lol.r04
I.have.two.balls.107.hdtv-lol.r06
I.have.two.balls.107.hdtv-lol.r08
I.have.two.balls.107.hdtv-lol.r02
I.have.two.balls.107.hdtv-lol.r09
I.have.two.balls.107.hdtv-lol.r10
I.have.two.balls.107.hdtv-lol.r11
I.have.two.balls.107.hdtv-lol.r15
I.have.two.balls.107.hdtv-lol.r13
I.have.two.balls.107.hdtv-lol.r21
I.have.two.balls.107.hdtv-lol.r16
I.have.two.balls.107.hdtv-lol.r14
I.have.two.balls.107.hdtv-lol.r17
I.have.two.balls.107.hdtv-lol.r12
I.have.two.balls.107.hdtv-lol.r19
two files from the next set in the download queue
I.have.two.balls.107.hdtv-lol.r18
one file for the next set in the download queue
I.have.two.balls.107.hdtv-lol.r20
If the files would download in order then the cache wouldn't fill up so much. I'm running on a 32-bit OS and memory is always tight.
Something related: It seems to start pre-downloading alot of stuff (50 or more items). I'm on a slow (about 2.1Mb) connection and if I'm downloading something and want to get headers from another group it doesn't even start downloading them till 5+ min after I tell it to download headers.
For example a download on 2014-01-06 from a.b.teevee using ssl-us.astraweb.com servers.
The file download order is (I reversed this from the Files List):
I.have.3CD0D84F.two.balls.107.hdtv-lol.par2
I.have.two.balls.107.hdtv-lol.r03
I.have.two.balls.107.hdtv-lol.rar
I.have.two.balls.107.hdtv-lol.r01
I.have.two.balls.107.hdtv-lol.r05
I.have.two.balls.107.hdtv-lol.r00
I.have.two.balls.107.hdtv-lol.r07
I.have.two.balls.107.hdtv-lol.r04
I.have.two.balls.107.hdtv-lol.r06
I.have.two.balls.107.hdtv-lol.r08
I.have.two.balls.107.hdtv-lol.r02
I.have.two.balls.107.hdtv-lol.r09
I.have.two.balls.107.hdtv-lol.r10
I.have.two.balls.107.hdtv-lol.r11
I.have.two.balls.107.hdtv-lol.r15
I.have.two.balls.107.hdtv-lol.r13
I.have.two.balls.107.hdtv-lol.r21
I.have.two.balls.107.hdtv-lol.r16
I.have.two.balls.107.hdtv-lol.r14
I.have.two.balls.107.hdtv-lol.r17
I.have.two.balls.107.hdtv-lol.r12
I.have.two.balls.107.hdtv-lol.r19
two files from the next set in the download queue
I.have.two.balls.107.hdtv-lol.r18
one file for the next set in the download queue
I.have.two.balls.107.hdtv-lol.r20
If the files would download in order then the cache wouldn't fill up so much. I'm running on a 32-bit OS and memory is always tight.
Something related: It seems to start pre-downloading alot of stuff (50 or more items). I'm on a slow (about 2.1Mb) connection and if I'm downloading something and want to get headers from another group it doesn't even start downloading them till 5+ min after I tell it to download headers.