Excellent post! I'm glad that behaviour trees are beginning to receive some appreciation. I've still not decided which structure I'm most comfortable with, I'm stuck between binary trees versus a fully blown behaviour tree. But I guess a binary tree is just a subset of a behaviour tree. Perhaps the benefit of understanding behaviour trees is you can pick and choose the elements that suit your project. You might not always need selectors, inverters, succeeders, in every project, but they give you a good toolkit to work with, as opposed to a simple validate/execute node.