As a side note, I think the term "writable CTE" is a misnomer.  The CTE
is not writable.  The CTE is the result of a write operation.
A writable CTE would look like this:
WITH foo AS (SELECT ...) UPDATE foo SET ...
a bit like an updatable view.
AFAICT, the current patch doesn't use the term, so there is no problem,
but just for those who are preparing propaganda and such.