Well, you might be right, of course, I'm basing my assumption on just the revision numbers of the mac_ox_x template, which changed while upgrading Coppermine. To be honest, I haven't done a step-by-step comparison to see if there was, indeed, a change besides the revision number (and minor copyright disclaimers on some headers). Perhaps there weren't any changes. I don't know. That's exactly my point here: I don't know, and I can't know, if something changes on the theme templates from one version to the other (imagine, for instance, that the next version has an extra button, or the whole templating system is redone from scratch). To be completely sure that during an upgrade any problems that arise are only my fault (and nobody else's), I prefer to leave the templates as untouched as possible.
Worse than that — if I change a template and theme.php for a template too much, it will be a pain to make sure that a particular plugin will continue to work if someone changes the template later on (even if the Coppermine version does not change). And both things, of course, might happen simultaneously: on a future version, Coppermine's templating engine might change dramatically and all themes are suddenly much more feature-rich — except for my own, which will be old, clunky, and incompatible — while the plugin, of course, will not work with any other theme except my own tweaked one.
By putting all possible changes inside plugins and not themes at least I have just one thing to change due to a dramatic upgrade. If something fails, it's just the plugin — the rest of the Coppermine install remains perfectly functional. So I have just one person to blame and one section of code to rewrite: the plugin.
Furthermore, I don't see (yet) how I can add multi-language support to themes without using plugins (I mean, if I need completely new buttons and elements that are not on the "mainstream" themes). Granted, I can replicate the whole multi-language support on theme.php, and create new "lang" directories for that particular theme, but this is really overkill. Or, of course, I can make a theme so bound to the plugin that it will only work with that plugin installed and nothing else (since plugins have a reasonably well-documented approach to multi-language support). Both approaches do not make much sense to me.
So what you're suggesting is that instead of adding a button via a plugin I should simply redesign a new template and a new multi-language support engine just for that theme?