@densh: it would be great if you could add some comments explaining why do you think you get desired distribution of trees. I have a suspicion that what we've got now is skewed and is not producing all tree shapes we would like to test.

E.g. you are using the same number to control both the depth and breadth of your tree. I believe you want to control only depth of your tree with the `size` variable:
  * as you go deeper recursively the probability of recursing more should decrease
  * I believe at each level of recursion you should have the same probability of generating given shape of a tree which is not the case

Feel free to disagree with those constraints on probability distribution. Whatever choice you make I'd like it to be explicit so we have clear idea what shapes of trees we are testing in practice.