The internal compression has to compress each record in isolation, which is not nearly as good as compressing the entire file as there are patterns that exist between records not just within records.
I see, that's makes sense. My sense is that wal_compression is really first to alleviate disk IO pressure and secondarily as a space saving benefit. Since I've set about archive_timeout because of a relatively light workload, I probably shouldn't need to worry about IO issues...
Thanks,
Sean