I have a good internal card reader, that I ordered as part of my PC (2 years ago). It operates at very much the same speed as an external USB2.0 card reader I have.
Many many years ago (back in the 'bad old days') I had a few experiences with pins being bent in the connections between graphics card & monitor cord (where these were not inserted carefully enough). And a short time later I had to tell a person their card reader (USB1.1) was broken because they had bent the pins in that.
Since then I've been 'wary' of bending any pins, so I usually connect my DSLRs to my computer using the USB cable. (Hence I'm probably a bit more 'wary' than I need to be, but I prefer using a few % of battery power than 'risk' bending pins by removing / changing cards all the time).
The speed from connecting my 7D directly to my PC USB2.0 is about the same speed as the internal card read and external card reader. (My 350D is somewhat slower). The speed connecting my 7D to my computer is very appoximately a bit quicker than 1GB per minute. As I don't take many videos, and shoot mainly JPEG, it works well for me about 90% of the time.
However, what is annoying (I'm not sure if this is an anomaly) - but using 'My computer', raw files on my 7D (and maybe my 350D also) are only viewed as a 'double JPEG' eg IMG_1234(1).jpg and when copied, is not the raw. So when I shoot raw files (eg tricky lighting, or to really get maximum sharpness & dynamic range) - then I take my Sandisk Extreme Card out of my camera and put into my internal card reader.
In summary, for me, the 'cable' is the most useful solution. I usually copy the files (nearly always just JPEGS) and while I'm waiting for it to do that, I am doing something else on my PC (eg sorting other photos, updating facebook, etc). I have set my camera to auto power down after 1 minute, so it shuts down a short time after the copy transfer is complete.
Hope my post is useful for some people.