Content-Length: でサイズがちゃんと明示されてたり、
Transfer-Encoding: chunked だったりする場合には、
ダウンロードの途中でサーバの方から切断しても
完了してないということはちゃんとわかるはず。
逆にこれらのヘッダを応答に含めてないののならば
そういう現象が起きてあたりまえ。

実際のクライアントの動作は確認してないけど、
これらのヘッダを送ってるのにダウンロード完了扱いにするのならば
クライアントがタコなせいでサーバ側にはどうしようもないと思う。
これらのヘッダを送ってないのにそういう現象が起きると騒いでるのならば、
そりゃあんたがアホなだけだ。