The question is: what do you expect by comparing a string with an integer? According to the "GAWK: Effective AWK Programming" guide a comparison between a string and a number follows the rules of string comparison and
Strings are compared by comparing the first character of each, then the second character
of each, and so on.
Looking at the first two characters of the string in the 4th field, the result of the comparison is
203-344-1234 < 40 --> TRUE
913-972-4536 < 40 --> FALSE
908-657-2389 < 40 --> FALSE
654-576-4114 < 40 --> FALSE
202-545-8899 < 40 --> TRUE
but not in a numeric sense. Indeed in this case only the first character serves to determine the result, since 2 is less than 4, 9 is greater than 4 and so on... in the ASCII table order.