General transformation for PrsMgr_PresentableObject

PrsMgr_PresentableObject transformation defined by TopLoc_Datum3D, which is essentially just a gp_Trsf.
gp_Trsf supports only uniform scales. Such limitations are understandable for shapes, but for meshes, they impose a serious limitation on rendering certain real 3D models.
For sure, transformation can be applied to each vertex and normal when the mesh is built, but that's fine if the transformation doesn't change often. If any animation is involved, it forces the mesh to be rebuilt.
I even tried to provide a custom ModelToWorld matrix via a shader program, but with little success, since near/far clipping occurs: these planes are calculated from the geometry data without the matrix.

How to solve that? Maybe a good idea for the V8 improvement?