I work a lot with the OpenCV C++ interface and designed a number of classes which use Mat\'s as private resources.
Recently, I got concerned about the Mat class, as
[shameless ad] we now have answers.opencv.org, which is sort of StackOverflow for OpenCV-specific questions.
Now to the questions:
No. We do not see an efficient way to implement this. If you do, let's discuss it.
Yes. Do not use Mat::clone()
unless you plan to modify the data. Reference counting takes care of proper deallocation of the data when it's no longer used.