The theoretical max throughput of the ISP is 200MPixels/second. But in practice this is 150-160Mpixels/second.
So, when you have a full res image from the Raspi sensor, at 2592x1944 pixels = 5MPish. Which you might think would be about 30fps. (150/5). But the camera can only do 15fps at full resolution, and there are multiple overheads inside controlling code that also limit fps. For example, the time taken to switch from preview to capture mode (1080p to full resolution) is at least one frame, and there is also the time to switch back, so you lose two frames at least (at 15fps). Now add the overhead of transferring the data around the system (the big one is GPU to the ARM) and you can see why things are much slower than theory might indicate.
More modern smartphone camera are able to capture at full resolution at preview frame rates (i.e. 30 fps). A faster ISP would be able to accept data at this speed, so no mode changes would be necessary - this is how things like zero shutter lag and the ability to take multiple pictures around the time the button is pressed and pick the best work - the ISP is constantly receiving full frames so can just pick and chose the one it wants. This is actually easier to handle - much less state changing going on - providing the CSI-2 peripheral and ISP and memory bandwidth allows it. It actually make video easier too - no video mode - just run the camera at full rez and scale down to the required video resolution.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
"My grief counseller just died, luckily, he was so good, I didn't care."