I've actually realised it would be really useful if there was a single document explaining all this stuff, a kind of "In the beginning there was..." style walk through of how things came to be. I'll try to write one over the next few weeks and put it on the wiki, as it would probably help new developers get their head around things.