My opinion is that the compiler hooks play a similar role to dunderscore methods (like `__del__`) in Python. They are conventional names that are used in specific case (by the compiler in Nim’s care and with the `delete` keyword for that specific Python method).
The naming convention uses `=destroy` I guess to avoid conflicting with the possible usage of a `destroy` procedure. The use of backtick is idiomatic Nim when the identifier is not a “standard one” (do not remember atm the rules), and in particular it applies to operators (like `+`) in addition to those compiler hooks. In summary it is very idiomatic and reasonable in Nim like dunder methods are in Python.