Нет, не отлично. По адресу 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) и погляжу, чем её проинициализирует линкер.