fastica returns W which is, according to the docs "the unmixing matrix"
FastICA has a components_ attribute which is also "the unmixing matrix"
But they are not equal when whiten is True:
if whiten == True:
self.components_ = np.dot(unmixing, whitening)
else:
self.components_ = unmixing
I don't know whether this is a bug (I hope it is), but if it's not the doc should be updated.
ping @agramfort