Seems that overload resolution is buggy for std::vector<vtkSmartPointer<...>>, so the wrappers fall back to the vtkDataArray* overload instead. I’ll investigate.
Ben is correct that using passing [vtkPolyData()] instead of just [] provides additional type information for overload resolution. But for this particular set of overloads, just [] is sufficient. That is, the additional bit of type info isn’t needed in this particular case.