1,2: все верно, вращать надо за счет преобразований transform.matrix3D
но чтобы получить адкватный результат (вращение относительно точки регистрации, например) надо мадрицу привести в "исходное" сотояние по координатам, там повернуть и снова вернуть в прежние координаты

Код AS3:
var matrixCube:Matrix3D = cube.transform.matrix3D;
var pos:Vector3D = matrixCube.position;
matrixCube.appendTranslation(-pos.x, -pos.y, -pos.z);
matrixCube.appendRotation(0.7, Vector3D.Y_AXIS);
matrixCube.appendTranslation(pos.x, pos.y, pos.z);
cube.transform.matrix3D = matrixCube;
3: сортировка - очень мутная тема в такой схеме хотя бы уже потому, что пересечься частями объекты никак не могут, потому что части эти обычно в разных конейнерах живут
остается шаманство со складыванием частей разных объектов в один контейнер с общей сортировкой,
естественно чем мельче фрагмены, тем адекватнее они отсортируются, но увлекаться этим тоже не выходит из-за неизбежных тормозов
еще нюанс: сортировать по z-координате в общем случаем неправильно, надо сортировать по расстоянию до наблюдателя (transform.perspectiveProjection)
4,5: насчет производительности и правльных направлений мне нечего сказать, грустно все..
рисовательные движки (инфинити, альтернатива, PV3D..), которые выводят этот 3D мир за счет отрисовки полигонов, предварительно спроектированных в экран, выигрывают, конечно же в производительности, но выигрыш этот не таков, чтобы говорить о каком-то съедобном 3D, имхо
а для ерунды можно и нативными костылями обойтись