So microservices are hard
When I read "people tend to be not good at defining module boundaries or having discipline about how module boundaries are formed" what I actually see is "people are rubbish at properly analyzing a problem and defining the specifications to solve it".
If you are not good at defining module boundaries, it doesn't matter what methodology you try to use, your code will be rubbish. And if, as Ken 16 pointed out, you add a layer of management indecision plus unforeseen technical issues, you'll end up with a big layer cake of failure.
Analysis. It's always the analysis that is the basis of all problems. When you forget about something, you do not take it into account and it ends up being the developers that try this and that workaround and the collisions between the workarounds compounds the problem.
If your analysis is complete and takes all possible factors into account, defining what a module should and should not do is much easier and also easy to follow.