Is there any way to re-render without having to rebuild the entire scene again? If i'm rendering on GPU, is there any way to re-render without having to rebuild the entire scene again (bvh etc).  

I'm just trying to tweak render settings between re-renders so I can optimise it for the fastest possible render time per frame for an animation.  

Scene build time takes 2-3 minutes, so it's getting really frustrating having to tweak the number of samples, then wait 3 minutes to see the effect, then tweak again, wait another 3 minutes, then again ...

It's like torture.

I thought persistent images might do the trick, but no, it still has to rebuild the entire scene every time...
You could hide the objects that are taking up unnecessary performance, to preview only the ones you want or what will give you a good preview. You can also render only a small part of the image. Here's a tutorial https://www.youtube.com/watch?v=94UsZw6mTaE