Правильный автоматический анализ утилизации требует DFA (Data Flow Analysis) в глобальном масштабе. Маловероятно, что вы создаете объект IDisposable, не вызываете на нем какой-либо метод и не передаете его в качестве аргумента. Если одноразовый объект передается другим методам (включая вызов его членов, когда неявно передается «this»), инструмент должен проанализировать, не вызван ли Dispose внутри, или этот объект не сохранен где-либо для последующего удаления.
Тем не менее, наивная реализация проверки того, действительно ли одноразовый объект утилизируется с помощью конструкции "using" или каким-либо иным способом, выдает слишком много ложных срабатываний и делает анализ бесполезным.