This is, yet another, example where using NamedControl or \cv.kr is far superior.
Rather than doing…
SynthDef(\syn, { arg cv; ... });
If you had used named control with a default value…
SynthDef(\syn, {
\cv.kr(\lin); // or NamedControl.kr(\cv, \lin);
}).add;
…you would have immediately been greeted with an error.
The issue is that you cannot send a symbol to a synth. Synth Controls are much more like Buses (In in particular) than they are like function arguments, and can therefore, only accept floating point numbers, or arrays thereof.