1. Expansion of the software universe. Back in VB6 times, there were fewer programmers but many languages. Reusing components made with different languages was a big deal (VB used COM/ActiveX machinery to make this possible), but today there are so many more developers, that each language/ecosystem is big enough to exist on an island and happily not interact with anything unless it's a grpc/rest endpoint.
2. Transition to SaaS. We no longer use the same platform for building and running. Your VB app used to run on more or less the same computer it was built on. SaaS applications run in weird, custom-made, hard to reproduce and fragile computers called "environments". They are composed from all kinds of complex bits and this makes SaaS applications less portable. Frankly, they feel more like "environment configuration" than "code" sometimes.
On the other hand .. look at how much software goes into e.g. car entertainment systems. How many systems have "curl" in, for example. Have a look at the vast list of BSD license acknowledgements in many systems.
Look at the npm ecosystem, where people complain that there's too much componentisation.
We don't fully get back to component reuse, but it makes the sharing of services much more feasible, and more portable as well.
So basically, increased complexity of components, any components, makes them harder to combine - except in very carefully controlled circumstances.
So does HTML/CSS/JS, and they'll also often be adapted to the various popular front end frameworks of the day - Angular, React, Vue currently.
I also find it easier to customize and compose 3rd party UI components on the web than I did back in the 90's with VB, Delphi, MFC, COM, etc.