Can the 'returning' clause return source columns that are not inserted?
The documentation on the RETURNING clause says:


  An expression to be computed and returned by the INSERT command after
  each row is inserted. The expression can use any column names of the
  table named by table_name. Write * to return all columns of the
  inserted row(s).


This clearly does not apply for columns from an other table.

Though I don't really get the point of the problem (i. e. why you do this - I imagine it is because it is a bit too abstract version of the original one), a possible solution can be:

WITH w AS (INSERT INTO t(rnd) VALUES (random()) RETURNING *),
     x AS (INSERT INTO t(rnd) SELECT random() FROM w RETURNING *)
SELECT w.rnd, x.rnd
  FROM w, x;


That is, you can put more than one writable CTE to the beginning of a query.  Please see this in action on dbfiddle.