As we've determined, an IP on tunl0 in Linux doesn't change what interface is used by the Kernel, specifying the interfaces does.
But it determines the source address of the machine local outgoing traffic. It seems no one is bothered to correct this, even if it is classified as an error and dropped by the gateway.