The free one at least will be detected immediately with a good libc, but nice idea. It gives me another idea though:
#define free(x) do { free(x); x = NULL; } while (0)
Assuming you can turn it off just before shipping, this will hide many forms of double free during development which then show up when the evil line is deleted.