I had some discussion before:
Maybe adding a new type DeriveDefault could be better.
DeriveDefault
If you use derive by accident, the duplicated implementation will directly throw an error, and if you just implement traits by hand, you could easily disable the derive flag.