Чтобы ответить на мой собственный вопрос (я также обновил исходный вопрос ответом), самосопровождающие POCO только «начинают» отслеживать свои собственные изменения, когда они десериализованы в первый раз. Исходное намерение предназначено, например, для сценариев WCF. В моей ситуации я часто использую в ASP.NET вообще не используя сериализацию, поэтому отслеживание изменений никогда не запускается. В большинстве сценариев (в моем случае) мне даже не понадобятся самосопровождающие POCO, как обычные POCO. работал бы просто отлично. Причина в том, что даже при том, что мои сущности покидают область репозитория, который содержит контекст, который их извлек, контекст все еще остается активным в течение всего процесса HTTP-запроса. Поэтому, когда я делаю последующий вызов хранилища для сохранения изменений, контекст все еще знает об объекте, потому что он извлек его для начала (ранее в том же HTTP-запросе). Ситуация, в которой часть самотрекинга становится полезной, заключается в том, что когда я хочу сохранить свою сущность в ViewState или Session, именно здесь десериализация активирует возможность самопроверки, которая теперь потребуется для сохранения изменений в качестве контекста, который будет Задача обновления этого объекта не совпадает с тем, который его извлек (разные HTTP-запросы все вместе).