When a section placement (AT) command references the section itself, the physical address of the section in the ELF header was calculated incorrectly due to alignment happening right after the location pointer's value was captured.
I ran into this problem when trying to link the Linux kernel with lld. There are a lot of sections defined like this in arm64:
.rodata : AT(ADDR(.rodata) - 0)
Since the linker script is generated, I guess there are situations where an offset is applied to the section address (zero in this case).