In AI, as in many communities, we have the tendency to divide a problem into well-defined pieces, and make progress on each one.  But as we make progress, the problems tend to move away from each other.