FCam has a seemingly endless TODO list. Some of the big-ticket items are below. You can also help by fixing bugs you find, cleaning up the existing code, or clarifying the documentation. Post suggested patches to any of the above on the FCam forum under open discussion. If you want to add a feature it would be a really good idea to post on the forum first to make sure there isn't already some way to achieve what you want to do.
Python bindings
FCam is already quite Pythonic. For example, the large objects are all reference-counted pointer types. We like Python, and tried to design it with eventual Python bindings in mind. We sadly never got around to it, however. We'd be grateful to anyone who contributes some Python bindings.
GStreamer output
While FCam can stream frames at a fixed framerate quite reliably, FCam currently has no clean way to encode and save video to disk. We think one of the example programs should be a demonstration of how to make an FCam program act as a gstreamer source node, to hook into all the existing codecs available there. FCam is good at fine-grain camera control. GStreamer is good at expressing a media pipeline. We think the two should be able to work together well.
A better dummy platform
Currently the dummy platform inside FCam isn't very useful as a camera simulator. It crudely models a few things like exposure and gain. Adding features like simulated noise and camera shake would be useful.
JPEG improvements (speed, metadata)

FCam::saveJPEG is very slow. The demosaicking takes about 800ms, and then the jpeg encode done by libjpeg takes much longer. It shouldn't be taking so long. It would be really nice to get an arm-optimized jpeg encoder in there (perhaps using NEON simd instructions). While you're at it, we don't currently have a loadJPEG method. A fast one would be nice.

There's no support for EXIF metadata in FCAM::saveJPEG either. Adding such support is much-requested, but not straightforward, since it's not directly supported by libjpeg.

Fast resolution switching (less shutter lag)
FCam is built on top of V4L2, which doesn't handle rapidly varying resolutions. When a Shot with a different resolution to the previous one comes down the pipeline, FCam currently flushes the entire V4L2 pipeline, shuts down and restarts the whole camera subsystem, then starts streaming at the new resolution. This takes a long time (nearly a second), and is the cause of the horrible shutter lag on the N900. A brave kernel hacker may be able to reduce this time by fiddling with the FCam ISP kernel modules and the guts of the FCam library source (primarily Daemon.cpp).

Anyone who solves this one will have our undying gratitude. An ideal solution would be able to insert a 5MP capture into a stream of 640x480 frames running at 30fps, without skipping more than the frame time of the 5MP capture. That is, the viewfinder would effectively stay live while taking a photograph.