But I haven't seen an explanation why bandwidth is so low -- is it lack of spectrum? Interference issues?
Transmit power.
For comparison, that might be how much your graphics card might be consuming while you are reading this article.
I guess that also means it is going to move very slow.
http://mars.jpl.nasa.gov/msl/mission/communicationwithearth/...
It is Curiosity that is not in sight of the Orbiters, again because of their low orbit.
What you'd need is a whole series of them to increase coverage.
But seriously, I guess for the same reason Couriosity runs on old PowerPC processors. They are just well tested and less likely to fail. If you want a high res image, you can always take 10 images and glue them together, result is the same.
They use a black and white CMOS to accurately measure the actual light hitting the lens (which may include non visible spectrum. To get a colour image they need to use filters and take multiple photos, where as consumer cameras have a fixed grid (Bayer pattern) of one filter per each pixel. That probably won't give you such an accurate picture. Also when they're using filters they're not interested in reproducing true colour but rather highlighting a difference in materials.
The bandwidth constraints no doubt the reason they didn't change the sensor. Besides, when they combine three different images taken with filters to create one colour image it will essentially be 6MP anyway.
We send up camera's tested and hardened against temperature changes, dust, vibration, and radiation. Also cameras that require low power.
Furthermore, there is limited bandwidth. So we probably want to send back mediocre pictures most of the time and if we see something we really want in high quality we take a bunch of pictures of it and put them together.
As a final note, the quality of the sensor and lens probably matters a lot more than the number of mega pixels.