"just ticking up a version number" drastically understates the headaches of Material UI over the years.
Not a boring application, a very large application -- each major version update was a tedious process because they completely upended many APIs.
We've migrated to shadcn, and upgrades are now easy; we can upgrade a single component -- add the new ones free.
With MaterialUI we had to update EVERYTHING to their new APIs to be able to take advantage of the new features anywhere.
With shadcn we can be selective.
This sounds like a problem with Material UI being undisciplined with API compatibility, rather than a problem with the broader approach itself.