The dead ends of the first design usually inform the design decisions of a major rewrite/refactoring. So, in that way the line of evolution is unbroken. Even moreso, if you expand the metaphor from the evolution of an individual or a species to the evolution of an ecosystem, which is really what a software project is - the code, the libraries, the deployment environments, the containers (hardware, databases, app servers, etc), etc.