I just remarked by reading the source of the strings.FieldsFunc that the method will also remove empty fields from its return value. For example, see the following playground.
Seeing that the used algorithm isn't the same than the one for the splits, I wonder if it is an undocumented feature or a bug ?