We have some Uno's on evaluation and have experienced problems uploading through the USB B connector because of a poor physical connection. I would be interested to know if this is an issue with build quality or if we have just been unlucky with the boards we have at our disposal.
The internal tabs within the socket on the board that should press against the sides of the male plug seem to have no mechanical strength to spring back and hold the plug firmly - these tabs should also connect the shield of the cable to GND on the board.
This means that after just a couple of insertions the plug has too much lateral movement within the socket to maintain a good connection and the slightest movement while communicating can lead to corruption of data or even to burning out the serial chip which prevents any further uploading of sketches.
This is the same on R2 and R3 version Uno's that we have and they are from two different suppliers here in the UK.
These Uno's (and possibly other Arduino's) seem to be physically vulnerable during upload through the USB and we've found it wise to follow the advice in the troubleshooting guide and not have any connections at all to the board while uploading a sketch - particularly on digital pins 1(RXD) & 2(TXD).
More experienced users here seem to advise using an external programmer to bypass the USB - I think is good advice if you are doing a lot of development.
Colin.