Is this a bug in QgraphicsView
No. That is the way it is designed to work. Scientific data plots are a special case; in general, when a scene is zoomed, all elements of the scene should also zoom - think of video games, CAD drawings, and things like that.

As I said, the easiest way for scientific plots or other charts is to implement the part that should zoom separately from the parts that don't, and combine them into a composite widget. I actually use the scale widgets from Qwt for my axes - better than writing all that code from scratch.