Programmed device causes issues between computer and ISP
With  the Tiny AVR programmer, the D+ and D- lines are connected to there own input pins on the ATtiny84, see below:



This means that the pins from the target chip do not interfere with the function of these. 

Whereas the digistump board has the outputs of the USB connected to pin 3 and 4, these pins are also connected to pin 3 and 4 of the target, as you know,



This means that as soon as you have your outputs active on 3 and 4 these interrupt the function of the USB lines.

By adding the 2.2k you are increasing the resistance before the Zener regulator circuit(thus decreasing the effect of the voltage from the target on these lines) and allowing the main tiny to have 'control' over the bus lines. 

This is actual done on the SPI buses as well when a ISP is programming a target, while the target has other SPI chips on the bus, you add series resistors on the SPI bus, as seen below:



The R is usually between 1k - 4k7ohm. So you method is not a workaround, but normal procedure.

Another method to use instead of the resistor would be to cut the traces on the target board for pins 3 and 4, thus preventing it from going back onto the USB line. This is as I see no need to have control over the USB lines from the target.


  Am I missing something? It seems like a programmer should be able to work without worrying about what the pins on the target device are doing. I assumed poorly, that was the purpose behind the RESET pin. Is there a better solution?


The programmer only toggles reset when programming, and once the target is flashed with your firmware that uses the same lines as USB and the PC then does not recognize the programmer because of this, the programmer won't be able to issue a RESET to the target, as  


the PC can't issue it, 
the programmer won't know to do that on its own.