I don't really understand the value of a project like PostgREST.

It feels like you're coupling your application schema to your database schema, which is something you generally want to avoid.

Is this only for niches where you are ok with the db schema being tightly coupled? Do you use specific views to decouple the two schemas? In that scenario it seems like you might eventually get to a point where your view is more complicated than setting up a more traditional application.

The recommended way to use Postgrest is to put a layer of views and optionally stored functions on top of your schema to decouple it from your API. Take a look at this Postgrest starter kit[1] which uses a separate API schema for this purpose.

[1] https://github.com/subzerocloud/postgrest-starter-kit