Я думаю, что вы на правильном пути. Ни бросание, ни отлавливание, ни документирование всех потенциально исключаемых исключений не имеет большого смысла. Есть моменты, когда строгость продукта требует более высокой степени занятости и документации (например, некоторые критические аспекты безопасности системы).
Стратегия большей защиты, использующая концепции контракта для определения предварительных условий (и постусловий) в отношении особенно вызывающих абонентов (например, всего, что напоминает публичного или защищенного участника), часто будет более эффективной и более гибкой. Это относится не только к реализации, но и к документации. Если разработчики знают, что ожидается, они с большей вероятностью будут следовать правилам и с меньшей вероятностью будут сбиты с толку или неправильно используют код, который вы написали.
Некоторые из общих вещей, которые должны быть задокументированы, включают случай нулевых параметров. Часто для их использования есть следствие, которое приводит к тому, что результат обычно не ожидается, но разрешен и используется по разным причинам, иногда для гибкости. Как потребитель элемента, параметры которого допускают нулевые или другие специальные нерациональные значения (например, отрицательное время или отрицательные величины), я ожидаю увидеть их идентифицированными и объясненными.
Для непустых параметров, как потребитель открытого или защищенного члена, я хочу знать, что нулевой недопустим. Я хочу знать, каков допустимый диапазон значений в данном контексте. Я хочу знать последствия использования значений, которые находятся за пределами нормального диапазона, но в остальном действительны в другом контексте вызова (например, значение типа обычно допустимо для любой операции, но не здесь - как булев параметр, который не не ожидайте ложное значение.
Что касается платформы или других хорошо известных интерфейсов, я не думаю, что вы должны идти на крайние меры в документировании. Однако, поскольку у вас, как у разработчика, есть возможность отличать реализацию от любого руководства по платформе, отметьте, как следует, что это руководство может быть полезным.
Специфичные для IDisposable, часто реализации этого интерфейса предлагают альтернативный метод, который предпочтительнее, чем явный процесс удаления. В этих случаях выделите предпочтительный метод и обратите внимание, что явное удаление не является предпочтительным.