Is there a way to flash a complete image (including U-Boot) to the board using only UART and USB connection with the board as USB device, i.e. not using ethernet, SD card or USB mass storage?
Sure, just stop in U-Boot using your UART connection and activate USB mass storage (UMS) entering
ums 0 mmc 0. Now, deploy U-Boot, device tree and kernel binaries to the primary VFAT partition and the root file system to the secondary ext4 one. Then, in a subsequent step you may also load the U-Boot binary from VFAT and write it to the primary hardware area boot partition which unfortunately was not directly accessible previously e.g. using UMS. The details of how/where to write to may be found in the legacy update script here.
Alternatively, you may also achieve this using the Toradex Easy Installer. By default it activates an RNDIS connection
However, you would need to fake our feed server’s DNS entry in order to serve the JSON from your end where you did set the auto install property.