Никогда особо не задумывался что API может иметь не только разную реализацию в плане кодов ответа, ошибок и т.д., а и структуры. Речь не о REST API, а больше о командном API.
Пример: клиент. У него могут быть адреса доставки. Логично что без клиента адреса нигде не используются как отдельная сущность. Их вполне можно вкладывать внутрь customer. Другой пример: есть заказы, у них может быть invoice, которые хоть и связаны с заказами, но могут и используются.
Так вот, invoice можно вкладывать в сущность заказа или выделить для них отдельный endpoint (команду).
На SO, например, пишут что каждый должен решить для себя как реализовывать. Если посмотреть на js-фреймы типа react и vue то там даже сделали специальную либу normalize для того чтобы работать с ресурсом без вложенностей. Говорят что это облегчает жизнь.