So I found some useful wikipedia pages to add to this thread.
First for anyone who is interested I thought I might explain a bit about Reynolds numbers. So it's defined as
Re = (velocity)*(characteristic length scale) / (viscosity)
Thee characteristic length scale is not very well defined so neither is the Reynolds number. Viscosity is how sticky or gloupy something is, water is less viscous than honey, you can measure it by putting it in a cup with a hole in and seeing how long it takes to flow out. So an aeroplane has high Reynolds number, it's going fast, it's big and it's moving through air which is not very viscous. A Bacterium swimming in water is small and going slowly and the viscocity of water is higher than that of air so the Reynolds number works out really low.
Fluid flow generally has two regimes. When the Reynolds number is low the flow is laminar (things which start close stay close) and as the Reynolds number grows there is a transition to turbulent flow (lots of mixing where things that start close end up far apart) and trying to understand this transition is a big problem which many people are working on. There's a million dollar prize associated with it.
Here is a good video which illustrates the transition. The length scale stays the same and so does the viscosity (same fluid in the same tube) and so as the velocity increases the flow switches from laminar to turbulent.
Here's a video showing how laminar flow is reversible. Note how they use a thin cavity and a high viscosity fluid to keep the Reynolds number low. Turbulent flow is not reversible, there's a lot of mixing going on.
Anyway how does this relate to the above problems? Well there are some nice formulae for drag on wikipedia which will be useful for working towards answers to the above questions, and the formula depends of the regime. Now for the microbe stage (small scale, low speed in medium viscosity) the Reynolds number is low so the following formula is the right one for the drag force F;
F = - 6*pi*(fluid viscosity)(radius)(velocity)
on the page there was this very helpful sentence;
"For example, consider a small sphere with radius r = 0.5 micrometre (diameter = 1.0 µm) moving through water at a velocity v of 10 µm/s. Using 10^−3 Pa·s as the dynamic viscosity of water in SI units, we find a drag force of 0.09 pN. This is about the drag force that a bacterium experiences as it swims through water."
Which is pretty helpful as someone's basically done a calculation for us
When the Reynolds number is higher there is the transition to a turbulent regime and this page has an equation for just such a situation;
F = (1/2)(mass density)(velocity^2)(reference area)(drag coefficient)
Here is a page with a list of drag coefficients, you can see that a well sculpted shape (like a fish) can have an extremely low drag coefficient. We will have to decide, when implementing, how to assign each procedural skin a drag coefficient.
This formula has the same problem as the "characteristic length scale" in the definition of the Reynolds number in that "reference Area" is rather arbitrary. So the formula will give a result that scales correctly when an object speeds up, but will deviate slightly between objects when different reference areas are chosen.
Notice how the formula depends on the square of the velocity now, so it will ramp up much faster as the velocity increases, going very fast is going to take a lot of energy.
It is interesting to think how to paste these two equations together. A fish will cross between regimes as it changes speed (and length and viscosity stay constant) so are we going to create a continuous drag where as you speed up the drag increases smoothly or are we going to have a jump where you start suddenly creating a turbulent wake and your drag increases significantly?
An interesting feature of turbulence is that it has a thermostatic property. So as you increase speed you reach speed X before the turbulence begins but then to fall back into a laminar regime you have to reduce speed down to Y, where X > Y. This could make for interesting gameplay.