1. It seems to me that if you ignore the way each of them is described, there is actually a very strong resemblance between ODT and NOID. In effect they both treat the first address used for a session as the ID, and dynamically switch to using alternative addresses as the locator, with a stateful shim concealing the switch from upper layer protocols. Am I confused?
the crude description of ODT is as a degenerate case of NOID.
2. One remark that I really don't understand:
8 Tunnel Creation...1. Host A announces its addresses to host B
The addresses may be of different address families. Each address is
accompanied by preference information. In order to not unnecessarily
trigger NAT incompatibility, a "current source address" address
family is used to refer to the source address in the IP packet,
which may have been rewritten.
Firstly, we aren't designing for IPv6 NATs, so this would only apply to the IPv4 case, right?
But in any case, I don't see how it helps. You can't tell by looking at an address whether it's been rewritten, so you can't tell if it's OK for checksum purposes.