Думаю, что это не проблема AutoCAD/C3D API. Оптимизация - это перетасовка кода. В C++ есть ряд опций для оптимизации и часть из них может быть рекомендована, часть категорически не приветствуется - я на пустом месте получал фаталы. В C# нет описания того, как выполняется оптимизация. Вполне возможно, что в ряде случаев она работает некорректно. Например, компилятор C# понятия не имеет о том, что AutoCAD API должно выполнятся только в основном потоке и сборщик мусора тоже должен работать в этом же потоке. Или нельзя менять местами какие-то циклы. Или еще что-то подобное...