That's a combination of the human part of the USPS, plus automated validation/correction routines.
To the human part: If you send a letter to a residence; and only include a street address plus 5-digit Zip code, or a street address plus city/state without a Zip code; that's enough to get the letter through. The envelope might be scanned at the originating point, and the image sent to a human for review, or the letter might make it to a post office at/near the destination, and a human will take it.
Sticking with the "rd" / "road" example: When the bank goes to mail something to you, I wouldn't be surprised if they run the address through a validation program. That validation program would catch things like "rd", replace it with the appropriate term, and also generate the Zip+4 code. What's missing is feedback from that program. So the bank might continue to have "rd" in your address, even though it's wrong.
To the human part: If you send a letter to a residence; and only include a street address plus 5-digit Zip code, or a street address plus city/state without a Zip code; that's enough to get the letter through. The envelope might be scanned at the originating point, and the image sent to a human for review, or the letter might make it to a post office at/near the destination, and a human will take it.
Sticking with the "rd" / "road" example: When the bank goes to mail something to you, I wouldn't be surprised if they run the address through a validation program. That validation program would catch things like "rd", replace it with the appropriate term, and also generate the Zip+4 code. What's missing is feedback from that program. So the bank might continue to have "rd" in your address, even though it's wrong.