Is the order of records in a VALUES list well-defined (postgres)?
VALUES is treated like SELECT. The SELECT documentation says:


If the ORDER BY clause is specified, the returned rows are sorted in the specified order. If ORDER BY is not given, the rows are returned in whatever order the system finds fastest to produce.


Your version of Postgres happens to return the three rows in the order you have written them. While unlikely, this could change in the future.