When using the "interface" flag for the ping command and the interface is specified (dum0 in this instance), there seems to be a different behavior from when you specify the IP address of the interface:
$ ping 10.33.1.2 interface 10.0.12.40 PING 10.33.1.2 (10.33.1.2) from 10.0.12.40 : 56(84) bytes of data. 64 bytes from 10.33.1.2: icmp_seq=1 ttl=64 time=40.9 ms 64 bytes from 10.33.1.2: icmp_seq=2 ttl=64 time=40.9 ms ^C --- 10.33.1.2 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 2ms rtt min/avg/max/mdev = 40.867/40.872/40.878/0.202 ms
$ ping 10.33.1.2 interface dum0 PING 10.33.1.2 (10.33.1.2) from 10.0.12.40 dum0: 56(84) bytes of data. ^C --- 10.33.1.2 ping statistics --- 2 packets transmitted, 0 received, 100% packet loss, time 29ms