If you do not have expectations, then all is fine.
(1) Having some kind of variable, especially in interactive mode, allows to manipulate previous results and reuse them later, without having to resort to repeated sub-queries or to retype non trivial values.
Client side psql :-variables are untyped and unescaped, thus not very convenient for this purpose.
You can currently (ab)use user defined GUCs for this.
How? It seems that I have missed the syntax to assign the result of a query to a user-defined guc, and to reuse it simply in a query.