Well, to clarify, I confess I did a wrong prejudging. I thought read-response-body is the only API to retrieve the body/data, so we should use it anyway to get the data rather than writing other procedure to handle it. Because the manual has only one API relate to this topic.
But I was *wrong*. This read-response-body is just a simple procedure to get few body/data under easy circumstance. It is defined so. Anyone who needs a more complicated operation must write his own procedure with bytevector handlers or write a new http lib. So it's no need to change it's behavior with any patch.

On Sat, Mar 17, 2012 at 1:25 AM, Daniel Hartwig <mandyke@gmail.com> wrote:
On 17 March 2012 00:57, Ian Price <ianprice90@googlemail.com> wrote:
>
> This still doesn't answer my concerns. I don't think the user should
> have to be checking the length of the result themselves.
>
> (let ((bv (get-bytevector-n (response-port r) nbytes)))
>  (cond ((eof-object? bv)
>         (incomplete-response ...))
>        ((= (bytevector-length bv) nbytes) bv)
>        (else
>         (incomplete-response ...))))
>

This.

> Am I the only one who feels strongly about this?
>

No.  I guess you are still reading the rest of the thread ;-)