> This will not slow down every query everywhere. It only sets an order by if there is a limit and offset and no order by on list requests.

There is a default limit of 100 results, and the default offset should be zero, right?

> If the primary key of a table is not indexed, we're doing something wrong.

There's nothing wrong with desiring uniqueness on a field we don't search, sort, or join on.

> Given that we have a hard limit of 100 results on queries, a client's only option is to use paginated requests to load ALL items. Without an order by, it's impossible to get all items with paginated queries. You will get a random set of items, but you will not get them all.

The correct solution is to use cursors. [http://www.postgresql.org/docs/9.3/static/plpgsql-cursors.html]. We probably don't have this feature in our ORM layer. So, in this case, the fix is to add one argument to your URL querystrings. This is preferable to cramming a fix into the core framework that affects all clients everywhere, and which we'll have to do extra work to remove, replace, and test again with the correct solution anyway.