Нет, не отлично. По адресу LMA не создаётся блок, содержащий инициализируемые данные. Вместо этого линкер продолжает размещать секции, указанные дальше.
.data           0x000185a0      0x9d0 load address 0x00018f70
                0x00018f70                __data_load = LOADADDR (.data)
                0x000185a0                __data_start = .
...
 .data          0x00018f70        0x0 stdlib\libnosys.a(_exit.o)
                0x00018f70                . = ALIGN (0x4)
                0x00018f70                __data_end = .
.bss            0x00018f70      0x358 load address 0x00019940
                0x00018f70                __bss_start__ = .
Как видно, в месте размещения LMA вместо констант я вижу секцию .bss, которая дальше в скрипте линкера.
Попробую после .data зарезервировать неиспользуемую секцию размером SIZEOF(.data) и погляжу, чем её проинициализирует линкер.