Are render passes always rendered? It would seem that the answer at least partially no, as rendering a simple cube scene with no passes enabled takes 3 seconds, while with all passes enabled takes 9 seconds.

I always imagined that blender rendered the image and while doing so gathered all the information needed for the various passes, then only saved the passes enabled in Renderlayers > Passes.

Is this the case? If not, what does blender actually do?
The contents of some render passes is always computed as part of rendering the combined pass. It takes little extra time to allocate the pass and store that value, however for a simple render and many passes this overhead will add up too.

For others (e.g. the Motion Vector pass) it would not normally be computed, so it will take up more time.