How do you create the release tag so that it contains change sets A and A+2, but not A+1? (and no, creating a branch just for the release is no option, because that means you have to copy all the changes you made on the branch back to the trunk)
creating a branch for the release is no option? that's odd, because I do that all the time. i.e.
1 - create trunk snapshot by branching 2 - build release kit from branch 3 - tweak snapshot in branch if necessary, repeat from 2 4 - when the kit is solid, tag the final branch 5 - merge relevant changes back to trunk