Working on big frontend apps is painful, upgrade paths are painful, deprecating packages is painful, testing and debugging is painful.
As with microservices, you don't start with 1000 services, but logically being able to split them when needed.
"delivery overheads to these approaches" as a matter of fact it's harder to deploy monoliths (as all the parts have to sync) than with microfrontends (that follow semver). As each group can have independent deployments.
"make sure you are doing everything perfectly", unfortunately, is what no one has ever been able to do in the history of coding, despite the claims :)