I’ll see what Daniel has to add regarding the simpler method.
Regarding the other questions,
_Join (in general) does not change the order or faces or vertices, but the faces and vertices from the second, third, etc meshes get added after the ones from the first mesh.
_Weld changes the order of vertices, not of faces. This is because coincident vertices get unified.
Catmull-Clark creates a new quad face for ( each face * each edge in that face original ), in this order. This means that after the first subdivision – which will create all quads – , it will always create n quads = 4 * (number of faces) . The first step will create faces = sum of edges in each face.
Regarding the code to run C/C, you can use this simplified method:
import Weaverbird as wb
for Robert McNeel & Associates