Ok I played around a bit in the console.. and I agree with you. This is another example of poorly wrapped C++ objects that can cause Rubyist's nightmare.
Each time we call Sketchup.active_model.active_view.camera we get a new Ruby object.
Ex:
Sketchup.active_model.active_view.camera == Sketchup.active_model.active_view.camera %(#008000)[>> false]