кажется, у Фаулера вполне понятное описание причин применения паттерна.
https://martinfowler.com/eaaCatalog/unitOfWork.htmlна мой взгляд, с UoW получается проще работать с запросами/операциями над бд, оперирующими несколькими сущностями. особенно, если приходится оперировать несколькими различными
типами сущностей. а так же UoW позволяет меньше времени держать транзакцию открытой, что тоже положительно сказывается на здоровье как субд так и приложения. так же UoW может под капотом схлопывать несколько однотипных операций в batch-запросы.
я писал свою ORM на основе шаблонов Repository и DataMapper, и могу сказать, что при сложной и "долгой" бизнес-логике управлять записью кучи сущностей на репозиториях становится тяжеловато. каскадная запись (по крайней мере на том уровне, что у меня получилось ее реализовать) помогает далеко не всегда. плюс время транзакции опять же