Resolved! Hardware IPv4 checksum on an STM32F407 is not working, though all the proper settings are set. (Works on rare occasions, oddly)
I'm debugging a legacy application on an STM32F407 that uses the std peripheral libraries and LwIP 1.4.1, and except on rare occasions, hardware IPv4 checksums don't work; they all get sent out as zeroes. When I disable hardware checksums in lwipopts...