I assumed based on the help that I could use xsv join --cross - some-data.csv - (echo new_field\n0 | psub) (in fish, hence the psub for process substitution…same issue if I write to a file) to add an entry of 0 for new_field to all the rows in some-data.csv, since a cross join is doing a cartesian product rather than matching up specific columns.
xsv however complains if the number of columns specified don't match or if the columns specified are not the same name, even though that's not required for a cartesian product.