Change interaction speed in 3D view

Nice progress. You can submit a pull request for the interaction scaling issue. Instead of using only the diagonal elements of the camera matrix, you need to use the column norm.

One option is to add an option to show axis codes in top/down/left/right annotations instead of painting those on the 3D cube sides (this would be a very useful orientation marking option anyway):

You may also use orientation markers in the lower-right corner.

You can fix the issue by using the using the camera transform to adjust the AxisLabelText transforms in vtkMRMLViewDisplayableManager (you need to experiment with how exactly).

It would be important to add a Python-scripted test that adjusts the scale of a 3D view the same way as you do in your application and performs basic checks. This would ensure that the changes that you contribute remain functional as Slicer code evolves. It would also make it easier for anyone to enable the distorted rendering, in case they want to test if some changes are compatible with this rendering mode.