The SDCard solves this problem fairly well (although the solution requires a reasonable level of computer literacy due to the filesystems and raw block device access needed, however its a good fit for the Pi user demographic).
Other systems solve this chicken/egg problem by having a tool that runs on a PC that can perform the programming of attached storage, often by downloading code and data into a CPUs RAM and then having it flash to the disk. Exposing JTAG to Pi customers however is a step too far and would require more expensive external JTAG hardware to be needed per customer as well.
If I was Pi, I'd put a 10cent USB stick IC onto the board that connects in parallel to the eMMC and enable the board to be plugged into any USB host and mounted as external storage. Some programmable logic (get one of the Silego 10cent programmable logic ICs) would be needed to prevent the USB from being mounted when the system was running - I'd probably add in a button or switch that is read at power on and determines which interface gets to see the eMMC. It would need to hold either the Pi chip or the USB IC in reset depending on which function was selected.
A second option would be to put an USB eMMC protocol stack into the BootROM, but this would need LittleKernel or something similar in the BootROM and its non-trivial to get right!