It's practical for software vendors on platforms [1] with virtualization, which have been gradually increasing over the past decade, including Windows, ChromeOS and Android.
It doesn't help with doing any splitting (e.g. 20 years ago) but in current era where software is architected as micro-services and packaged for containers and VMs, software is more likely to be "born as reusable component".
[1] https://www.intel.com/content/dam/doc/case-study/enterprise-...