I did this

I expected the following

I expected curl to output only 10 lines a second, but instead it output almost 4K lines a second. Note that this seems to happen only when the Content-Length header is not given, (which seems to be the case if you request a tarball from GitHub that hasn't been requested in a while, I suggest asking for rc1 tarballs of the Linux kernel, they don't seem to be downloaded very often, but once you download it, the Content-Length header will be provided for a short time afterward) which also seems to explain why the progress bar is locked at 100% all the time.