It is a significant problem that VTK cannot robustly read/write files that have special characters in their names or may generate invalid files if you change the locale. Probably majority of application developers would accept breaking changes to solve these issues. To make transition easier, we could make vtkString an alias of std::string or enable automatic const char* conversion (temporarily, controlled by a CMake flag).
Thanks for all the feedbacks everyone. This discussion helped in formulating a potential design and plan that I summarized here. We may get back to this later, when ongoing refactoring efforts (such as oriented image data support) are completed and a driving project with appropriate funding is identified.