Thanks to tigert for the link on how to easily upgrade from WordPress 1.5 to 1.5.1.
Unfortunately, it was even easier to upgrade among the 1.4.x versions. First, you un-tar the new version into (all paths are relative to the blog root, /) /wordpress-x.y.z, then you copy index.php out of wordpress-x.y.z into /, and copy over wp-config.php from the last version. Finally, from /, you run “ln -sf wordpress-x.y.z wordpress“. Assuming WordPress was configured to use /wordpress as it’s “wordpress directory”, you just upgraded it. Much, much simpler, and the old installation was automatically “backed up” (because you’re not overwriting anything). If something turned out to be broken in the new version you could easily revert to the old one by copying the old index.php and overwriting the symlink — and could write a shell script to do all of this for you.
But now we have the new and improved WordPress, which although it continues to have the “wordpress directory” option in the admin FE, breaks in all sorts of horrible ways if you actually try to use it. Don’t get me wrong, I love the new templates system, precisely because it does make upgrading things easier if you want to modify the scripts. However, in the process they unnecessarily broke one of the features that made upgrading trivial for those that didn’t, for a net loss of ease-of-upgrade.