The main difference between SOA and microservices is dump pipes vs smart pipes. Not service size. As explained in that book.
Most people trying to implement microservices seem to have not read much about them outside of blogs.
People not reading the literature then implementing it badly isn't problem with the idea. In the same way that not studying calculus then doing badly isn't a problem of calculus.
Most of these issues around microservices like how to split them so they don't cause issues, are known and solved problems. Just people have not read the literature other than the odd "blog". Like don't do microservices, for your first iteration. Backwards compaitble apis, and understand your bounded contexts from your first iteration before you try.
They end up creating chatty nano services with tons of version fixed cross dependencies.