If M is a direct sum module (isDirectSum M == true) then N is the direct sum of the duals of the components (and this is done recursively). This SHOULD be built into dual M, but isn’t as of M2, v. 1.7
See also
HomWithComponents -- computes Hom, preserving direct sum information
tensorWithComponents -- forms the tensor product, preserving direct sum information