Re-creating the project file should not hurt, but it should also not add anything useful. I would seriously question your motivation, and I would decide to change only what needs to be changed:
Our projects are currently a mess, and I tried to clean it.
Anyone who has been around a large project probably thinks at some point. If there is a โmessโ somewhere, this is not in the actual project file in the project source files (PAS, DFM). Refactoring should probably be the other way around. Reorganize the source files (if necessary), delete files that have been proven to be redundant, and the project file will immediately reflect the new found cleanliness.
Obviously, this is a difficult task, redefining the version number, project names / descriptions / company information, etc.
This is ALL on one page in the project settings. I honestly doubt that this will be the hardest thing you will need to do. You will most likely find hard-coded dependencies on third-party components and other proprietary projects. Those will be painful to track because you will hit ReBuild again and again, fixing the block that the compiler is complaining about.
The idea is that the files that make up the project are listed in the project file and includes a minimal set of compiler parameters and defines. If you re-create the project file, you will eventually add all the compiler options and define it back, and you will also add each one of the files back, one at a time, because this list is really encoded in the uses clauses of the files that make up your project . The only files that will NOT be returned are those that can be found on the search path, in the project folder and in those that are really redundant. If you want to delete redundant files, this is not the way to go. Better look at some kind of usage list parser.
The main reason I think of is because I saw how new Delphi XE2 projects automatically create subdirectories for each platform and release (Win32, Win64, Debug, Release, etc.)
No need to recreate the project file for this, just change the Output Directory and Unit Output Directory in your compiler options:
.\$(Platform)\$(Config)