vtkNew and vtkSmartPointer

I prefer vtkNew when it is a local declaration as even with auto it is more compact, and more clearly conveys what I am doing:

vtkNew<vtkChartXY> chart;

versus

auto chart = vtkSmartPointer<vtkChartXY>::New()

I will admit to some bias, but think that it is both shorter and more expressive to use vtkNew in that context. If I am storing an instance I get, or working with it from a factory etc I would prefer vtkSmartPointer, i.e.

vtkSmartPointer<vtkChartXY> chart = chartFactory->createLineChart();

That is where I wonder if the vtkNew name is its downfall when using move semantics. We named it quite narrowly, and calling

vtkNew<vtkChartXY> chart = chartFactory->createLineChart();

Seems a little muddy, whereas vtkUniquePointer would be clearer in intent. I guess people can learn the nuance of what happened with vtkNew, but before it becomes too widespread it is worth considering whether the addition of something like vtkUniquePointer as a preferred factory method would be preferable to generalizing vtkNew.

When I proposed it and added it I wanted a simple equivalent to declaring a local instance.

vtkChartXY chart;
vtkNew<vtkChartXY> chart;

It was not named in the best way, or intended to fill the emerging use of unique_ptr with move semantics, factory method creation etc.