Crossover in Genetic Programming is mostly a destructive operator, generally producing children worse than the parents and occasionally producing those who are better. A recently introduced operator, Context-Aware Crossover, which implicitly discovers the best possible crossover site for a subtree has been shown to consistently attain higher fitnesses while processing fewer individuals. It has been observed that context-aware crossover is similar to Brood Crossover in that multiple children are produced during each crossover event. This paper performs a thorough analysis of these crossover operators and compares the performance of the two and demonstrates that, although they do work similarly, context-aware crossover performs a far better sampling of the search space and thus performs much better. We also demonstrate that context-aware crossover benefits from a speed up of almost an order of magnitude when using a simple and very small cache, which is over two orders of magnitute sm...