The display screen on your camera should give excellent feedback to you at all times. And you should be able to change it at any time and in any way, should you so choose.
You should have applications built-in. Do it in Java for all I care.
I want a calendar and a contact list and a face recognizer and an in-camera crop function and a turn-to-black-and-white option. And I want to rename a file letter-by-letter right in the camera. And if I so choose, I want to use either the scroll wheel or left-and-right to do it. And by the way I'm a bimbo and I shoot my camera upside-down from a custom gimbal. I want all the screen elements to flip upside down for me and let me switch the functions of the playback and shutter release buttons for an hour while I hammer out this photo shoot. On top of all that I want to see stacks and work with batches and move files around.
Yup, I want geotagging, and yup I want face tagging. If you have your wits about you, you might write your camera's software to play really really nicely with PhotoSynth.
No camera firmware past present or future can be perfect nor expected to be perfect. But from what I can tell, it would be currently possible write open-source software to run on a given camera's integrated computer. It could be emulated on a computer. Call it an ARM processor for the time being.
I believe that it would be possible to write software that would perform ALL of the functions and exhibit all of the features of ALL current digital camera models.
From there, the modularity of ins and outs of the software-hardware system could be performed by others. Working with others is key. Bring it on. Contact me if you want to work on an open-source in-camera software.