I ran into many serious obstacles trying to use the RPi camera.
Writeup for the MMAL library is hopeless, but somehow the v4l2 driver is based on MMAL (I think). But the v4l2 driver cannot give you a preview window with arbitrary location and size because it does not implement VIDIOC_CROPCAP, VIDIOC_G_CROP and VIDIOC_S_CROP. So you can't make a program using the v4l2 driver that shows you a preview while you still have realistic usability of the rest of your interface. And you can't make it by calling MMAL functions directly because you can't figure out how that works.
Is there any chance of getting progress on those issues in the near future?
A more general issue is the sensor-- it's tiny, and therefore not very sensitive. For scientific work one may want something much better, as has been pointed out in other posts. Are there any other sensors that can be connected to that bus?
That bus connection is fairly fragile and it requires the camera to be pretty close to the computer. This could be a problem in many applications.
USB cameras might overcome some of these limitations, although they suffer from not having access to the GPU the way the RPi camera does. Should the foundation back off promoting the RPi camera, and steer people toward USB or web connected solutions?