I joined a project a couple years back, where there was a different backend for android and iOS, but both used the same database. To do anything, you’d need to make several calls (fooAndroid, fooAndroid2, fooAndroid3, etc.) and the server used the phone as a sort of ‘temporary memory’, since it would send back unrelated variables in the response, and the next call would need those variables as parameters. I’d imagine it started with someone not wanting to set up caching in their ‘stateless’ XML API because there was a release and ‘I’ll fix it later’.