Because they build upon previous experience, not upon the original problem. (Foo 3) minus (Foo 2) would make much less sense in the past. But now that Foo 2 guys know Foo 2, it seems like an improvement. The problem stayed the same. Foo 2 made sense only in a context of Foo 1. Squint at most (Foo N, N >> 1) and you will see Bar 1..2 declared dead long ago because it missed today’s context.