Part 3: Why function purity matters