The MMC1 and Flash chip would both get writes to the $8000-$FFFF region, but this shouldn't be a problem because the Flash chip doesn't respond to writes unless preceeded by several writes to particular addresses, ones that wouldn't ever occur accidentally. And the values written often have the high bit set, so it naturally resets the MMC1 shift register as well, avoiding MMC1 disruption when programming the Flash. I realize that 5V DIP Flash chips aren't produced anymore, but these are just too convenient. Jameco Electronics at least seems to have them, and for a decent price (around $4 USD).
We're also considering making the CHR RAM battery-backed and write-protectable, using one of the MMC1 CHR bank selection lines. Both of these features have worked on another MMC1 cart I've modified to implement these features.
To allow programming, we're making cheap serial interface cables for the NES, with the NES implementing the UART in software. The basic design uses a MAX232 or equivalent to convert between the NES 5V and RS232 +/-12V signals. An alternate design uses an FTDI TTL-232R cable which has a USB connector on one end, and bare wires on the other with 5V serial signals. While more expensive, the cable can be made by literally just splicing it to a NES controller cable. With some heat-shrink tubing, such a cable would look very elegant.
A third approach not yet tried is to use a few resistors and diodes to interface the NES directly with RS232, without any level shifting. This should work for sending data from the PC to the NES, but might not work the other direction. For many uses, this is sufficient.
In the Flash ROM resides a tiny bootloader that waits for a 256-byte program from the PC, then executes it. This 256-byte program can then receive a larger loader program, or whatever. This design has worked very well on my devcart. The benefit is that the tiny bootloader doesn't have to be updated every time you improve the larger loader, lessening the chance of bricking the cartridge.
In order to reduce the chance of an end-user bricking the cartridge, we're considering a small bank-select switch/button that selects an alternate copy of the bootloader, in case the main one gets corrupt. Since the end-user has no way of reprogramming the cartridge beyond the PC interface, something like this seems important.
While the initial goal is to make and sell some at a $40 price point (I've left all monetary decisions to arfink, and declined to receive any money for this), it'd be nice if anyone could make one of these, or at least other people also make some. They should at the very least allow running 32K NROM NES programs, and provide a cheaper platform if you just want to run other homebrew stuff.
Thoughts on the design/improvements/problems?