I have one more basic question which is a lot easier to ask than the last question: Is there an obvious reason for why this works:
ParametricPlot3D[so3toE3[Inverse[yn[s]].ND[yn[k], k, s]], {s, 0, 1}]
but not:
zz[s_ ? NumericQ] := so3toE3[Inverse[yn[s]].ND[yn[k], k, s]];
ParametricPlot3D[zz[k], {k, 0, 1}]