In version 0.1.2 the quote? predicate is called after the object to be written into a cell is converted into a string (see line 99). If the predicate quote? would be applied to the object instead, function write-csv could be called as follows:
(write-csv
"test.csv"
(link: [1 "text")
(link: 2 "text")]
:quote string?)
In the current version every cell value is a string.