Hey David!
For my small memory boards (e.g. Adafruit Neo Trinkey) that I’m using your ARM assembler functions to blink the NeoPixels onboard.   After getting all my functions onboard I do a save-image first so that all the assembler functions are saved there.  After a restart and everything’s loaded fine I call my little function, clr-asm.   My free memory goes from 84 to 2057.  clr-asm just unbinds all the assembler instructions which, after being loaded, aren’t needed.  If I need them again, I just reset and add my new code, save-image, lather, rinse, and repeat. :)
(defun clr-asm ()
       (dolist (i '(regno emit error offset $word lsl-lsr-0 add-sub-1 mov-sub-2-3
                 add-mov-4 reg-reg bx-blx str-ldr str-ldr-5 add-10
                 add-sub-11 push-pop b-cond-13 $adc $add $and $asr $b
                 $bcc $bcs $beq $bge $bgt $bhi $bhs $ble $blo $blt $bmi
                 $bne $bpl $bic $bl $blx $bx $cmn $cmp $eor $ldr $ldrb
                 $ldrh $ldrsb $ldrsh $lsl $lsr $mov $mul $mvn $neg $nop
                 $orr $push $pop $rev $rev16 $revsh $ror $sbc $str $strb
                 $sub $sxtb $sxth $tst $uxtb $uxth outclr outset dirset
                 $cpsie $cpsid cpside clr-asm))
          (makunbound i)))
FWIW!
-Rusty-