That's true. It's faster to render using D3DFVF_XYZRHW but....

You have to do all the transformation yourself. I guess this requires a lot of buffer locks/unlocks, which isn't very good for performance. If you only want to render a few triangles/quads it's isnt a real problem, but when you want to render more complex scenes, you will notice a difference.

You shouldn't only look at the performance.. also look at the efficiency and difficulcy of an approach.

When you choose to use Orthogonal projection, you can use matrices for transformation. The actual transformation of the vertices takes place on the GPU (and not on the CPU). This is very efficient because now you can use the CPU for other stuff... like physics, AI etc etc...

You can also use D3DFVF_XYZRHW. You have to do the transformations on the CPU. If you only want simple things (2D, simple scene)... D3DFVF_XYZRHW can suffice. but when you want to rotate lot's of 3D geometry, i advice you to split op the workload between GPU and CPU.

So it basicly depends on what you want to achieve.