If you try to differentiate monolith acceptability based on "quality of architecture", you really have never understood why they are hated in the first place.
Look, my microservice is clean and nice and has a 100% test coverage, I couldn't care less if you can't communicate with it from yours. Solve it somehow.
Now get off my lawn and let me rewrite the whole thing in scala.