Perhaps what we need is, after a symbol has passed the deprecation cycle, replace its original definition with a static assert(0). Something like this:
I think @disabled with a custom message would be perfect for this. static assert only works for templates.