There is more info about this on the dev docs here - https://devdocs.magento.com/guides/v2.4/performance-best-practices/advanced-js-bundling.html where Magento agree that the core bundling method results in a poor experience for users:
Magento bundling reduces the number of connections per page, but for each page request it loads all bundles, even when the requested page may only depend on files within one or two of the bundles. Performance improves after the browser caches the bundles. But, because the browser loads these bundles synchronously, the user’s first visit to a Magento storefront could take a while to render and hurt the user experience.

At Slow 3G connectivity, it takes about 44 seconds to load all the bundles for the homepage of a clean Magento installation.
And this is before you add any custom JS!
So how can we bundle?
There are a number of different tools built to try and bundle the JS in a better way, I have tried the ones below with varying results. The general results were good on a core instance of Magento after some configuring and patching, it was painful but worked.
It was a different story on a custom theme though, every single tool ran into errors, and when I fixed those errors something else would go wrong, then something else. So in the end I gave up. This could have been something in the theme causing issues although it was a very typical M2 theme using the core stack.
Regardless of what we do the core Magento 2 frontend stack (not PWA studio) is never going to result in a fast website unless you rewrite every piece of functionality, loading hundreds of JS files is a terrible idea and we are left to fix this as Magento seemed to drop the frontend stack the moment M2 was released.