Parlando genericamente, ci sono linguaggi di programmazione che fanno uso più o meno di annotazioni e decoratori.
Sia per aggiungere informazioni di tipo alle variabili in un linguaggio tipizzato dinamicamente o per aggiungere "metadati" a metodi e classi in un contesto di framework. Lo "scopo" di questi è sempre quello di estendere in qualche modo la lingua nelle sue capacità o renderla più flessibile in un certo modo.
Ora sembra tutto a posto, vero? Usando un linguaggio tipizzato in modo dinamico e vuoi aggiungere alcune informazioni di tipo alle tue variabili? - Basta usare i decoratori. Devi fare in modo che quella classe sia gestita da remoto da un app-server? Dillo aggiungendo un'annotazione.
Queste cose mi sembrano sintomi. I sintomi sono causati da un problema di progettazione sottostante. O mi sbaglio moltissimo su questo?