You're right but you didn't address my second point. The fact that with this patch
(call-with-input-string "HTTP/1.1 \n" (lambda (port) (read-response-line port))) passes the check for 'bad-response error inside read-response-line. It throws 'bad-header-component from non-negative-integer instead because d1 is always true if d0 is true.