I understand the intent of net-snmp using IP_PKTINFO -- set source address but don't constrain the route lookup for the response to the interface the packet is received on. For VRF, the same result is obtained by setting ifindex to the VRF device index. VRF, as a NOS feature, was designed for switches and routers so by definition works in multi-homed, multi-source address (duplicate source address, etc) deployments. I submitted a bug fix to the kernel to prevent IP_PKTINFO with ifindex = 0 from overriding...
Bill: Regarding your comment "When you set ipi.ipi_ifindex to a non-zero value, the ipi.ipi_spec_dst.s_addr is ignored.", that is not true for Linux. If in_pktinfo contains an address it is used for the source address.