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?