I would imagine there are four use cases, depending on whether there is a Content-Length field in the response header:
If we know what the content size is from the header, we should be able to allocate a &binvar of the right size from the start.
It is only when there is no content-length header that we potentially need to allocate memory several times or have multiple copies in memory.
P.S. It might be sensible to extend $urlget to include a maximum size - after which we terminate the download. Sometimes you are only interested in the <head> part of a web page. Sometimes you only want to look at the beginning of a file to determine its content type. However this would potentially avoid situations for someone downloading a file without realising that it is way to big to fit into a &binvar or way too big to download in a reasonable timeframe.