Yes they should be.
Depending on your build/deployment setup you may find that replacement variables enable you to have fewer patches and to differentiate between environments. Alternatively you can have patches for each environment and remove when packaging up artifacts before deployment.
The same would hold true for configuration transforms. The build server pulls the latest changes from source control at which point configuration transforms can be processed.
As may be pointed out by many in the community, storing any file which contains paths to databases, passwords, and anything sensitive should not be in the file committed to source control. This is where variable replacements come in handy.