I assume the reason for the behavior is so that wrapper functions can have the same default outputs as the functions they are wrapping. For example, in the code below, nargout=0 when myWrapper(3) is called. So, if the comma separated list assignment had resulted in varargout={}, then myWrapper would not have returned a default output, as sin() does on its own. This is surely a good thing, however, I still wonder if/where this is all documented.
sin(3)
ans = 0.1411
myWrapper(3)
ans = 0.1411
function varargout=myWrapper(x)
[varargout{1:nargout}]=sin(x);
end