Thanks for your attention.
What platform are you seeing this on? a.out isn't widely used anymore...
Here are the gory details, since you asked
I am working on Minix 3, which is using an hybrid of the classical PC/IX a.out used for years, and the classical 4BSD a.out; and as you know, Minix is still alive and kicking, along with that unbearable perfume of nostalgia
.
But the reported problem is not with this breed of a.out (since Minix does not allow execution from .data, the test case is rather pointless, at the very least convoluted.)
Rather that, while testing my mods I created a more involved test case for any kind of relocation I could imagine, and found a difference here (with respect to binutils and 4BSD a.out); and furthermore my attention was drawn by the (quoted) comment, which I take as a hint that Nasm code could be improved. At the very least, the comment could be changed to really explain how a.out works.
Is there interest for that in the mainline of Nasm?