Ok: after thinking about it over the weekend, I was able to develop a workaround which well, works, and supports my theory that the kernel is dropping traffic for non-native IP addresses:
ifconfig eth0:0 <address you're spoofing>/netmask
Which configures a secondary IP address on eth0 so the kernel treats it properly. I also tried assigning it as lo:0, but that doesn't work because (duh) the MAC address is different.
On one hand I'm glad to have found a way to make it work, but on the other hand that means that basically every module intended to do spoofing stuff will have to be modified. Yikes! Or some brave soul will have to mod the kernel to behave like it used to. I'd take a stab at it, but kernel hacking isn't part of my skillset.
I also noticed that you need to configure fakedns to listen on the IP address you've created above. Apparently the convention of 0.0.0.0 listening on all interfaces is buggy or broken by the same thing that is dropping traffic for non-native IPs.