Unless you can alter eMMC without a running o/s no method will be safe. When in recovery mode the Jetson downloads the fastboot.bin file from the PC host for temporary use in RAM. It is fastboot which understands serial USB protocol and accepts the commands to flash a partition.
This is just a contrived example (there would be a serious amount of effort to get this working), but consider that if you were to place the fastboot.bin used during flash as a partition in the Jetson itself, and if fastboot were modified to automatically stream from something other than serial USB, you might stand a chance.
Imagine you are able to do this, and that fastboot always loads first, and that the bytes it streams in turn chain loads U-Boot should some magic byte sequence not be present…when you go to flash the dtb you would overwrite those magic bytes such that fastboot would default to stream a dtb from some other source…when the dtb flash is complete those magic bytes would be restored once to cause fastboot to chain load U-Boot instead of writing the DTB.
You could be creative as to what stream fastboot would get its dtb bytes from, e.g., the SD card…but beware that anything you choose must have a driver in recovery mode…neither U-Boot nor Linux would be providing drivers at that stage.
I would be tempted to have an entire partition reserved for updates, and have the leading bytes of that partition be the magic number. No external device would be required and only the eMMC driver would be needed (presumably the fastboot used during flash would already have this capability). The down side is of course that this could require significant space if you want to update anything other than something tiny (you couldn’t do this with the rootfs because the rootfs is already nearly the size of the entire eMMC). A 4MB partition (or even 64MB) would probably not be an issue.
I could imagine this partition is the size of the sum of all of the other smaller partitions combined, plus room for magic bytes. Should magic bytes not be valid it would flash based on what is in the partition until it either reaches the end of the partition or sees the magic bytes. If you wanted to force a flash all you would need to do is overwrite those magic bytes (it’s like a journal).