Gaurav, comparing micro frontends with a fixed component library on the mentioned problem:
Ownership — In Microfrontends there is no need for ownership at all, the person who needs a component creates it and will host on-demand for the component. Whereas in a library, there is a need for ownership of a team that creates a common library across teams.
On-Demand — Components are created when the use case arrives and are hosted for other teams to use. Whereas in a library, components are assumed and are a fixed set of components, and adding a new one needs approvals and requests from the ownership team.
Enhancement — Say one team is using a hosted component created by another team and they need an enhancement. In micro frontends, the using team just adds the functionality and updates it making it more customizable and updates are frequently done by everyone. In the static library, we need to wait for the update and the updates are not common across and need to be done by the ownership team.
Bundles Sizes — The micro frontends components are loaded with components the app is using at the run time making it more flexible and lightweight. Whereas in a library, all the components are loaded when we don't use it making it more bundle size. we can take it quite lightly as there are enough strategies to solve this.
As the company grows and the teams grow, the components grow. Given some time it will start giving the fruits.