I've seen a similar thing happen. It all started with good intentions, like only having simple endpoints that do
"one and only one thing".
In the end the backend was pure and beautiful, but the the frontend devs had to perform joins in the the client and make 21 API calls in a 20-item list and then everything goes to hell.