Although awk(1) is perfectly capable of reading lines much larger than 512 bytes, it cannot write them. This appears to be an accident; the definition of RECSIZE in run.c is what determines the output-line limit, and it is set to 512 whereas elsewhere RECSIZE is 5*512. I have tried increasing RECSIZE to 1024 and have seen no ill effects.