It’s actually even more complicated. If you attached a DV camera to a computer, say via Firewire, it can then be used to directly capture video to your application without storing the image/video on the actual camera. In this mode of operation I would say it is an input device.
However, as you rightly say, when you use such a device with it’s internal storage, it is then the camera part (CCD, ADC, Lens etc) that is the input device, the data is processed using the internal microprocessor and associated software and then stored on the device storage (SDCard, SSD or similar). The digital camera will have it’s own output devices (probably a speaker for audio and an LCD display). A digital camera is a system on its own.
This is, again, an example of where our oversimplification of computing concepts distorts the real picture? Really we should be enabling learners to “break down” these devices into their parts rather than confusing them with blanket terms that are incorrect.
Anyway…what about a touch screen display? Input? Output? Both? 😛