This subsequent filter solves the problem:
cleanPolyData = vtk.vtkCleanPolyData()
cleanPolyData.SetInputData(spheresOneByOne.GetOutput())
cleanPolyData.Update()
nPts = cleanPolyData.GetOutput().GetNumberOfPoints()
nCells = cleanPolyData.GetOutput().GetNumberOfCells()
print("Case 3")
print("Cleaned (i.e. one sphere)")
print("nPts: {nPts}, nCells: {nCells}".format(nPts=nPts, nCells=nCells))
print("")