@sberlin: Maybe you could have a look at the system Phex uses (
http://phex.kouk.de ), as it doesn't download sequentially anymore, but uses Segment preferencing, so that the rarest parts of a file are being downloaded first.
Also it saves unconnected segments as seperate files and only joins connected ones. But I don't know, if it stores additional Information in those unconnected Segments.