What if there is business or application logic that must be applied to the data in order to return the correct viewable subset to the client? There’s a lot of this going on in the middle tier of PHP between the database and the templates in many WordPress plugins, if not the core itself.
If the client were to encode all that logic to ensure that it presents the correct dataset, that would seem to break any sense of encapsulation that the business logic tries to put around the data. So any changes to the data or the rules about the data would have to known and accommodated by the client.
Or am I missing something?