Reported by charles-cooper in #1838 (comment)
Another interesting thing I noticed is that running rm src/Data/Foo.hs in that project results in a stack running a rebuild .. and exiting successfully.
I had an inkling this was an issue with the dirty checker. Turns out that removing a file does not cause a package to be considered dirty. This likely eluded detection because usually when removing a module, you cause the cabal file to be dirty.