Seems that there are the same number of weights as CVs, but the indices are not contiguous.
`getAttr -size skinCluster1.weightList` == size (`ls -flatten "nurbsSphereShape1.cv[*]"`)
the weights list on this sphere has indices 0-7 then it skips 3, starts again at 11-18, skips 3 and so on.It goes to index 73. Is this related to what you are seeing?
i didn't have any problem doing getAttr. Got all the plugs (the sparse list) with :
listAttr -m skinCluster1.weightList
these worked for me
getAttr skinCluster1.weightList[4].weights[0];
// Result: 0.000206285 //
getAttr skinCluster1.weightList[4].weights;
// Result: 0.000206285 0.998395 0.00139868 //
julian