Why is this better than using the service file?
service file is not well described in manual. quick grep showed that we have PGSERVICE variable, and pg_service.conf.sample, which doesn't even include all possible parameter names.
and - comments in this file suggest it is to be used globally only: "Copy this to your sysconf directory (typically /usr/local/pgsql/etc) and...", and not "per user".
i would really love to see pg_service.conf extended in such a way that i could:
1. store it in $HOME/.pg_service.conf
2. use name of service on psql invocation (not as env variable). preferably using psql service_name. this will conflict with current behaviour (treating argument as dbname), but with some basic logic, i belive it can be done.
just my $0.02.