patch code is loaded into SRAM, only firmware into flash.
(limited flash cycles and size/length of time it takes to flash)
using explicitly assignment I expect be less efficient than using a static array of data.
the former creates lots of instructions, the later simply calls an initialiser when the patch is loaded.
(both use sram, as both .text and .rodata go into sram ... see ramlink.ld)
if this was a normal use case, I wonder if you would move .rodata to sdram....
(I suspect there would be performance issues with this move)
in your example, try to make your array a constant... see if it uses less memory.
(I'm wondering if your getting 2 copies, one in .rodata and one in .bss, both for a patch reside in sram,
it may not be happening as it may be optimised out by the compiler when it sees no writes, but worth a try to save sram)