Sorry, I don't mean to get too off the subject. Just trying to make some sense of things.
While I have not tested the "actual" part of -p m16u2 or -p m8u2 the -p at90usb82 works well as documented. I also tested -p at90usb162 with the same success. I am not sure if -p ATmega8U2 or -p ATmega16U2 will respond with much success since they are only descriptors:
I think the arduino-1.0.1\hardware\arduino\firmwares\arduino-usbserial\makefile explains it.
MCU name(s)
Since the ATMEGA8U2 part is not directly supported by the current
versions of either avrdude or dfu-programmer, we specify a dummy
part; AT90USB82 which is close enough in memory size and organization
MCU = atmega8u2
MCU_AVRDUDE = at90usb82
MCU_DFU = at90usb82