Scalability - The COM components within a single application, even a single transaction, can be partitioned across any number of component packages. If both changes occur successfully, the transaction can be committed, or saved, to the database. If one or both of the changes fail, the transaction needs to be rolled back. Using threads instead of processes improves application performance. Each COM component has a unique identifier.
Later versions can replace earlier versions of the component.
Since the location of the COM component is determined by the system registry, not in the COM component itself, you can develop COM components without needing to know where the components will be deployed.