It might be valid for all template edits, but quite a few things that people use the templates for can be injected using a custom template. Using a plugin you can have a listener.php file that does the hooking in.
The benefit here is that you have a plugin you can turn on and off, can export and import, and could contain almost all of your template modifications without you having to ever edit those actual templates. I made a page_container edit once in version 1.0.0 and in 1.1.2 it's still working, and upgrading is just a matter of uploading files and running upgrade, as usual.
For example; an admin wants to have a link on the profile page "send this user a private message", you could easily just edit the appropriate template. Or, check if there's a hook in that template for the position. Create a listener event in the back-end, and your own listener.php file. Then a custom template like mytemplate_profile_pm_button and put the code in there. Now when the profile page is loaded, through that hook, it injects the custom template. And you didn't edit the existing one. So when xenforo upgrades that template, no biggies, because as long as the hook is there your custom template code is injected.
Additionally, most CSS changes in default templates can all be done in EXTRA.css, when I do is include my custom template into EXTRA.css so I can have a plugin with my own custom templates. If I need a backup of my custom code I just export my plugin - and I could even share it, import it on my other forum, and have all the changes again. Note: this is just extra work, by default extra.css by xenforo won't get upgraded because it's always empty. They understand customizations for css go in there (it's its purpose).
The above example:
http://xenfans.com/threads/profile-pc-button.1595/
Benefits of a plugin for this: a) easy to maintain, b) doesn't touch original templates, c) custom phrases (and keeping them organized by having them in a plugin), d) options, so you can customize say it's position per board, e) easier to share with others
You can use my plugin code to get an idea how to have a product, custom templates, phrases, file structure, and code, to achieve this. There are documentation thread on this web site here explaining the basics of a plugin.