...But before you can compare photos, you need to make them align with each other!
- letting the user add a couple alignment points on each photo,
- use the alignment points to scale and align (the in-memory copies) of the photos,
- and then view the images in an overlay-ed manner.
You raise some excellent ideas here.
I regularly use the Picasa image viewer to flip between overlaid images, because it retains zoom factors and manual image shift values (not retained permanently).
This is mainly to do things like identify critical focus details to pick out the best image from a group.
The ugly thing about Picasa is that it insists on sliding each new view in from one direction or another, which is extremely frustrating when you are trying to compare images.
The other problem is that the alignment has to be done as trial and error by manually dragging the images and flipping between until they align - there is no way to simply select a point and say "align to this".
I would suggest a single reference point, giving X and Y translate, is enough for many situations
A second reference point then give you translate, rotate and scale, if they are necessary.
In my photos, the subject is often moving slightly. In these cases the extra precision that might be gained by two-point referencing is not worth the effort, because the subject will invariably have moved in a way that is not correctable.
An overlay with 50% transparency might allow you to select the first reference point in both images at one time.