Well, the main reason to do objects is that they don't need to reside on the heap, which means temp matrices are in the fast stack. Using classes results in memory management issues, i.e.

a:=b*c+d;

.. results, depending on compiler smartness, in one or two intermediate matrices. How does BDS solve this in native mode?