When an emitter using velocity/life is rotated (to a rotation that is not a 90 degree increment), the velocity/life is not correct.
E.g. a particle system is set up to render in world space and has a initial velocity of [10, 10, 10] to [-10, -10, -10] and a velocity over life of [100, 0, 0].
When pointing down the X axis, the particles move coherently down the x axis (as expected, because the velocity is now [110, 10, 10] to [90, -10, 10]).
When the emitter is rotated, and is pointing down the Y axis, the particles move coherently down the y axis (as expected, because the velocity (in world space) is now [10, 110, 10] to [-10, 90, -10].
When the emitter is pointed at 45 degrees to the X and Y axis, the particles spray out to travel down both the x and y axis independently, appearing to have a velocity range from [110, 110, 10] to [-10, -10, -10] (but the correct speed).
What I would expect would be the result is for the velocity to be calculated (somewhat) as follows:
newvelocity = mul(initialvelocity, emitterrotationmatrix) + mul(currentvelocityoverlifemodifier, emitterrotationmatrix)
And thus the resulting velocity would be similar to [81, 81, 10] to [61, 61, -10].