well. honestly, i think that you are perhaps overrating your concerns, no offense meant.
in the first place, the new function i provide is only a convenience function. so it doesn't harm performance, where performance is needed. where performance is needed, any concerned programmer can and will choose the underlying, and claimed to be faster, functions already in the API.
in the second place, if one takes a look at the typical function using this API functions, it goes more or less like this:
1) first it sets up a normal loop, calling on every iteration the GetEditorCount() function
2) the index is converted into a pointer to a built in editor by calling GetBuildinEditor() or similar
3) the pointer is checked against nullptr
4) then something is asked of the pointer like for instance GetName()
5) then that name is most likely put into an array or added to some wxwidget
in my (humble) opinion, the amount of execution time spend in 4) and 5) normally totally out-ways what is done in the rest of the loop. so, using the convenience function in this case would hurt performance only in a almost unnoticeable amount. in return it would reduce significantly the lines of code and checks performed over and over again in so many places in the code, with so many possibilities to forget something, or introduce an error...
i am in no way an expert, but only the fact, that i have to read less lines to grasp what a piece of code wants to achieve seems like a huge benefit, and as i stated above, in many of those calls, the code is not so performance critical as it seems. and as to resources: how many pointer would that vector have to hold? 10, 42, 128? it doesn't seem so wastefull at all: the vector gets allocated on stack for how much time, before it goes away?
but maybe i don't get the point, if so, please just ignore my proposition