RFC 2784 mentions:
Care should be taken when forwarding such a packet, since if the destination address of the payload packet is the encapsulator of the packet (i.e., the other end of the tunnel), looping can occur. In this case, the packet MUST be discarded.
It would seem that the original tunnel endpoint sending would have to have a messed up route to not recognize itself as the destination and forward the packet over the tunnel.
Does this imply that an infinite loop is possible or just that the packet will get possibly sent back one time?
Cisco's documentation seems to demostrate that they use this exact behavior to make a keepalive work. Wouldn't this violate the RFC though since "the packet MUST be discarded?"