In the answer you linked to, Craig says:
It's possibly practical to do it with minor changes to PostgreSQL( if all the servers are read-only, but I haven't investigated it as it's a pretty uninteresting use-case.
The problem is, there is no way to start a PostgreSQL server and tell it "you are only allowed to look at this data directory, you are not allowed to write anything at all". Even a PostgreSQL server operating as a "hot standby" takes the liberty of writing arbitrary files inside its data directory (e.g. postmaster.pid, temporary files used for on-disk sorts, rewriting hint bits, and so on). If two or more servers were coaxed into operating in hot standby mode against the same data directory, chaos could ensue.
There is simply no "look but don't touch" mode for a Postgres server, so the answer to:
What about if all [Postgres server instances operating against the same shared data directory] are read-only?
is: not possible today without changing Postgres to implement a true read-only mode.