It seems like this confusion could be reduced somewhat if warp datasets and .aff12.1D files had notes or comments naming datasets in the domain and target spaces, respectively:
$ cat T1High_ns_at.nii.Xaff12.1D
# 3dWarpDrive matrices (DICOM-to-DICOM, row-by-row):
# From: T1High_ns.nii.gz
# To: T1High_ns_at.nii.gz
0.975364 0.0454151 -0.00810694 -1.49083 -0.0376654 0.956415 0.464133 -26.1689 0.0175699 -0.367507 0.981575 -15.926
Instead of simple text lines, these could be NIML elements, but this seems like overkill given that this is an ad hoc solution meant for use by humans rather than the sort of comprehensive space-tracking system that would allow the problem to be solved in an automated manner (and that would require enormously more work to build).
Even this might be too much work, though, since you have to hook into every single thing that creates warps and pass it the extra two dataset names (maybe the appropriate struct gets two more fields?), and you also need every script that calls these programs to be able to parse the output and replace things like ___tt_something+orig with the name of a dataset that the user knows something about.