This seems like a bug to me but it is hard to say for sure.
It often happens that an implementation makes sense at the time that it is implemented but does not make sense when it is looked at later. Occasionally during development, if an implementation takes a lot of time and work, with many intervening changes, a coding/testing fatigue sets in both for me and the testers. And while 99% of the implementation is fine, 1% might be slightly odd but we will accept it anyway - we might justify it in some way, or we might not bother to question it, or we might just miss it, or our test scripts might make it appear reasonable.
For example, in this case, I might have used a test script that used /sockread -n &binvar to append multiple incoming lines to the same &binvar, so perhaps including the terminating zeros made sense in that context. Or maybe, if the terminating zeros were not included, the discrepancy between $sockbr, $sock().rq, and the length of the &binvar was considered an issue.
As /sockread -n was very likely added due to a specific request by one or more scripters, and no one questioned the implementation then, this seems to imply that the behaviour was considered okay at the time.