I thanks for your interest.
To answer you questions :
1/ The orientation defines the orientation around the normal of the image plane (the orientation of the image in 2D space). The orientation of the particle (meaning to where points the normal of the image) is defined in the renderer by a custom policy : Will the particles look towards camera, or a point in the space, or will the orientation follow the direction in where the particles moves... Basically, the angle of a particle is just an offset of the orientation of the particle around its look vector. There could have been one around the up and side vector too but it is not relevant to my opinion (in case of particles made of 3D models it may become so though)
2/ Because I need the camera transform to get the camera position and orientation which is the inverse of the modelview. But actually I dont really need to invert the modelview to orientate particles, I could do without and this can be optimized.
Anyway once a have the camera transform, I orientate billboards using it (depending on orientation policy)
3/ In case where it can be : For instance you can defines an axis for the orientation directly (imagine circles on a ground due to a rain drops for instance) or you can fasten the computation of billboards by having them looking towards the frustum near plane instead of the camera point (the effect will be quite similar except some slight distortion at the borders). In general everything which is marked as fast in the doc of LookOrientation and UpOrientation needs only one computation per render for all particles in the group. In this case, the look axis of all particles will be the same but they can still be rotated around it (2D rotation of the image)
4/ In 2D it is simpler, you dont need any modelview as you dont care where the camera is and you know where to look to face the camera. Particles facing the camera will have a look vector of unit z and a up vector of unit y (depending on how you set up your view thou)
Hope this helps. Dont hesistate if you have further questions
PS : To get a good overview of what kind of orientation policies can be set up with SPARK, I suggest you take a look at the explosion demo of SPARK 1