awk is perfectly able to do the job of
cut at the same time, so yes, that can be optimized a bit.
-F , sets awk's field separator to comma and OFS=FS causes it to use it as the Output Field Separator as well as [Input] Field Separator.
Code:
awk -F, -v d="$(date "+%Y-%m-%d")" '{ OFS=FS; print "abc", d, $1 }' foo.csv >foo.txt