Back in the day, when CMS were still a rather new way of building websites, custom CMSs seemed to be the way of life. And sure, custom code is usually created to fit the exact architecture relevant at the time and will probably work marvellously.
But what happens when you need new integrations, or new software versions, or when other components in the stack are replaced.
As taught by the past, custom-built components tend to sneak up on you and knock you over when time passes. Because what often seems like a manageable undertaking might grow big, complex, and cumbersome.
This goes for data orchestration and content federation as well.