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