As time goes by I don't see much of a difference. If I spent six months building something for client A and then a year doing something entirely different for client B, I will have to puzzle out what my intentions were a year ago just as I would have to do maintaining code anybody else wrote.
Truly agile developers approach development by building a working system that can run but is far from the requirements and then making subsequent changes to the code to satisfy them one by one. Each "Sprint" is just a round of maintenance. Even the first release to production would have been rehearsed on a staging environment so that release might not be such an emotionally charged event because it is not a chance to slow down but instead start fixing bugs and adding features...