Correspondent node functionality in Mobile IPv6 does exactly that, by sending the packets directly between the two nodes involved. Basically it works by associating the connection with a 128-bit GUID instead of with the node's current network address, which allows the network address to change without breaking connections.
So... basically exactly what the suggested solution would look like, if it was modified to work with all protocols and not just TCP/UDP.
So... basically exactly what the suggested solution would look like, if it was modified to work with all protocols and not just TCP/UDP.