Rationale for 509 minimum character limit
The C11 dr 5.2.4.1 limits are different than given by the OP. I suspect they come from C89.
4095 characters in a logical source line
4095 characters in a string literal (after concatenation)
[Edit] @jwodder suggested a more complete answer was needed.
Best I can provide: 512 bytes was the most common sector size for floppy, diskette and hard drive media circa mid 80 to mid 90s and likely contributed, along with @bizzehdee & @DigitalTrauma thoughts as to the curious 509 limit.
It was a very popular buffer size.
This perhaps is to take account of possible CR
+ LF
+ '\0'
characters and have a string representation of each line still fit into 512 bytes of memory.