Adobe Experience Manager has the ability to install base functionality and bundles on first run based on the run mode. That is used, for example, to load Oak binaries for CRX3 without having to load the CRX2 binaries. Changing the run mode of an AEM server after it has been setup can be dangerous for that reason. The danger is obvious when changing the run mode to from one repository type to another. It makes sense that will break things.
Another time when it makes sense not to change the runmode after it has installed is when nosamplecontent or samplecontent was used on installation. These definitely change what is installed.
Believe it or not, there are fundamental differences in the way servers with the publish runmode are installed versus using the author runmode. One example where this happens is with security. By default, instances installed with the publish runmode should have most of the suggested security changes that are needed for a production publish system. Changing an author to a publish server will not come with the changes made on installation. And authors will not be able to work with a publish server repurposed as an author.
There are a set of fixed runmodes. These are runmodes that cannot be changed after installation. Fixed runmodes include publish, author, nosamplecontent and samplecontent.