Да и нет.
К сожалению, вы правы - разработчики вообще редко используют CAS, не говоря уже об использовании его в полной мере. В очень немногих ситуациях я вижу, что они на самом деле делают это (хорошо, на самом деле это не программисты, а организация, заставляющая их…)
Помимо того, что он позволяет пользователям ограничивать сборки, загружаемые из Интернета (например) - хотя это редко развертывается за пределами Silverlight - я видел два основных варианта использования CAS.
Во-первых, это общие ограничения политики, как правило, самый простой способ промокнуть ногу с помощью CAS (особенно, поскольку VS может автоматически сгенерировать файл политики для вас). Я видел это в использовании (редко), когда чувствительное предприятие (например, банки) имеет стороннюю систему разработки системы, которая должна быть защищенной. Это может принести им пользу, добавив дополнительные ограничения на то, что они не знают, что делают их программисты.
Во-вторых, это очень специфические требования к соединению, в (опять-таки редкой) ситуации, когда у вас есть модуль, работающий с относительно высокими привилегиями, и вы хотите, чтобы в ваш модуль вызывали только определенные сборки. Например, только на прошлой неделе у меня был клиент с модулем записи в ActiveDirectory, и я хотел ограничить доступ к этой функции только из конкретной системы.
Конечно, CAS намного больше этого, но это действительно два лучших места для начала. Как правило, и это, конечно, верно для всего, не решайте использовать его только потому, что оно есть, если только оно не отвечает вашим потребностям. Политика является самой простой и имеет смысл вводить ее заранее.