d) If it is not possible to undo all, but just the last one, wouldn't it make sense to increase the version number with each single step, effectively changing how we do upgrades?
No, upgrades should be all-or-none.
Remember, your tcl scripts and www pages for version x.x.N+10 are unlikely to work if only x.x.N+1 gets run without error, regardless as to what number(s) you end up putting in the apm_package_versions table.
So I don't see the point behind this.