Normalization is a crucial step in the GraphQL Federation query planning process. Query Plan Caching can save up to 10 seconds of latency per request, and it's not just an optimization but a necessity for any GraphQL API used in applications sensitive to latency. However, low hit ratios can prevent caching from working effectively. Normalization affects the hit ratio of the cache by flattening the query structure, exporting variables, or using deterministic variable names. The three forms of normalization have different strengths and weaknesses, with Form 1 being suitable for validation but not ideal for caching, Form 2 being great for analytics but negatively affecting caching, and Form 3 being perfectly suited for caching query plans while having a downside in terms of error message generation. GraphQL Federation can replace the complexity of multiple optimized REST APIs and BFFs with a more efficient organization structure, making it better to have a complex but well-understood piece of software than a simple solution that brings organizational complexity.