Because the backend data is exposed to the world, with all its original semantic structure (relational model) intact, before it is flattened into a document view.
Real world is messy, some companies have different key-value pairs on the same kind of document (invoice, purchase order, utility bill, etc). I counted 20K different keys, some semantically synonymous, in a few thousand invoices. Even the table part can have different columns. What do you do when schemas don't quite match?