setFooterLabel(c, label, ind) & getFooterLabel(cin, ind)

setFooterLabel(c, label, ind)
ind - footer row index (optional, 1 by default)

getFooterLabel(cin, ind)
ind - footer row index (optional, 0 by default)

Why is footer row index inconsistent in this way? Why not start at 1 in both cases?

Your issue is confirmed.
We agree that such situation may be confusing. The index parameters should equal in the getFooterLabel/setFooterLabel methods.
But unfortunately index parameters cannot be modified due to the backward compatibility.