Не понимаю, зачем этот класс реализует IDisposable.
Ну это вопрос к инженерной команде AutoCAD.
В каких случаях мне всё же лучше использовать ObjectIdCollection?
Мне известно как минимум два случая:
1) В тех случаях, когда метод явно требует в качестве параметра ObjectIdCollection или возвращает ObjectIdCollection.
2) Когда в силу ограниченности AutoCAD .NET API может понадобится воспользоваться P/Invoke с методом, который получает в качестве параметра AcDbObjectIdArray.
Кстати, AcDbObjectIdArray - это просто динамический массив, элементы которого AcDbObjectId