He explained to me that his central realization was that he had to control the relationships between the different layers of the application stack in order to make sure that it could reliably deliver smooth movement.
Bug-for-bug compatibility is a problem, but breaking backward compatibility would be a much bigger problem, so even as the lowest layers of the operating system are revised and rewritten, the layers that applictions talk to (the application programming interface, or API) are carefully tested to ensure that no changes are visible to the application.