GNU ld *does* only one thing: it links. It doesn't actually know much
about object file formats (as you doubtless know, that job is left to
libbfd).
ld's real problem is *age*: its design predates ELF, and it shows. Its
design meshes quite well with COFF, but who uses that naymore?
(And I use the ihex ld target on a fairly regular basis. Maybe there are
other ways to do the same thing, but it works for me...)