This seems like such a no-brainer architectural choice that it makes me wonder if there's some tradeoff I'm not seeing. Why would Nix have cached failures in the first place?
It seems to make more sense than not having them to me -- nix is all about reproducibility. If you didn't change anything, why would you get a different result? Instead of spending 15 seconds on evaluations, just tell me "you didn't change anything doofus -- cached error."