So what does VectorFunctionSpace /do/ in the non-ufl_element case.

It builds a VectorElement, and passes that to functionspacebase.__init__.

I am arguing that a VectorFunctionSpace of VectorElements is something different.