This document discusses compiler optimizations based on call-graph flattening. It proposes dismissing functions during early compilation and tracking control flow explicitly instead to remove overhead from function calls and enable powerful optimizations. A pilot implementation in LLVM showed code size improvements over existing inlining techniques when optimizations could handle the flattened code, demonstrating the potential of the approach. Further work is needed to improve live value tracking, register allocation, and add support for indirect calls and recursion to fully leverage call-graph flattening.