Т.е. если ты 10 раз сделаешь Dispose, то никаких исключений быть не должно. Метод Close подразумевает закрытие соединения, потока и т.д. но не освобождение неуправляемых ресурсов.
Рекомендация на покрытие кода: How to fix violations To fix a violation of this rule, change the implementation so that regardless of the code path, Dispose is called only one time for the object.