Никогда не использовал его для атрибутов, но я часто использую операторы прекомпилятора, чтобы скрыть код на стороне Silverlight / Client, когда он компилируется на сервере. Например, это часто делается для того, чтобы добраться до EntityState как на стороне сервера, так и на стороне клиента:
#if SILVERLIGHT
using System.ServiceModel.DomainServices.Client;
#else
using System.Data;
#endif
SILVERLIGHT определяется на стороне клиента, но не на проектах на стороне сервера (символ условной компиляции - свойства проекта, вкладка Build).
Я не пробовал, но думаю, что это может работать с атрибутами?