Good point - the test of "would it fork the blockchain" makes sense. Not sure if the wiki is the right place.
This forum has been super helpful as a newer developer trying to understand the pieces better.
One more I was just thinking about: when selecting coins to create a new transaction, does it make sense to use transactions which are not yet in a block? Gavin's naive implementation above deemphasizes these, but in a worst case I'm guessing it is still ok to include a tx not in a block because the protocol rules will prevent the double spend?
Similarly, does the official client clear out orphan transactions after some period if they haven't made it into a block?
I very much appreciate the help. It's taking me a long time to wrap my head around it but I feel like I'm slowly getting there.