As a final note, here is a PG without the potential memory leak:
This is not the most beautiful solution as it breaks if new observers are added to onViewMatrixChangedObservable
I am really curious why this one does not work with a simple copy of the view matrix: