The reason is that you're using /sockread &binvar which is a special case where looping isn't going to help because it will read the entire contents of the socket buffer into the binary variable at once. That means any subsequent looping won't read anything because the buffer won't be re-filled until the sockread event ends.

For any other usage of the /sockread command however looping will be useful because there will be no guarantee that the entire buffer will be read at once. For example if you change that line to something like /sockread 1000 &temp or /sockread -n &temp then you'll see that $sockbr does update correctly when there's more data to be read from the buffer.

Spelling mistakes, grammatical errors, and stupid comments are intentional.