I've pretty much accepted that the features of the embedded-system-specific linkers of the 1980s won't ever be restored, but here's something that I wouldn't expect to be all that difficult to do, and could be pretty useful (well, to my warped style of programming, anyway): Allow (via some suitable commandline switch or switches) the linker to manufacture two defined symbols giving the base address and size of each named section it finds. The symbols should come with some appropriately bizzare prefix that keeps them from colliding with user & library functions, of course.
The existing WinAVR linker script manufactures a few of these symbols (as near as I can decypher the script anyway) explicitly, describing the initializers for the .data section, constructor lists, size of .bss, etc), but it's done explicitly, and extending those mechanisms to allow programmers to use some of the same techniques that the environment does requires fiddling with the linker script(s), which is (for good reasons) discouraged.
Internally, the linker knows how big the sections are, and where it's decided to put them. And I can't believe that the systems running the tools can't cope with the handful of extra symbols. How hard would it be to get the linker to cough up programmer-referenceable symbols for the sections?