The camera is serviceable as is but the ux could be drastically improved, imo.
I think the locking of camera rotation around the y plane hurts immersion and should be incorporated in some way. The ability to bind a hotkey for that would be the single largest impact change to help with camera complaints. I click the third mouse to pivot around the x plane, so something like alt+middle mouse to rotate about the y plane would go a LONG way.
If everything else in this thread were ignored and that addition alone were added, it'd fix a LOT of issues with the camera.
Doing that PLUS changing the behavior of some camera defaults would make for excellent ux, imo. The first addition after allowing vertical camera tilt would be to change default camera behavior when selecting PC's (outside of tactical view, specifically)
Currently, it moves the camera to a default position and rotation centered on the selected PC. While in tactical mode, that seems like a fine default. Outside of tactical mode, that default orientation is usually suboptimal. At least half the time it's rotated more than 180 degrees off the direction the PC is facing and zoomed out quite far. Most of the time when you change party member focus you spend as much time re-adjusting the camera as you do actually controlling the PC you just selected.
Some tweaks would make this better.
First, add a first person view that moves the camera into the selected PC's head. Put it right behind their eyes (with the head model clipped , obvi) with the x and y planes aligned to the surface the selected PC is standing on. Call that horizontal plane under selected PC "the ground."
Second, change the default behavior of the camera when selecting a PC. Make it so that the camera is "behind" them at half of max zoom. By "behind," I mean it's positioned 180 degrees from the direction the selected pc is facing when selected and is pointed at the PC's back.
Third, modify zoom behavior. Make max zoom the first person view and gradually tilt the camera into alignment with the "ground" as you approach 100% zoom.
To elaborate, start with a "height" zoom threshold. This is the closest the camera can get to the "ground" . I think it should be the selected PC's eye level to allow for the seamless transition to first person. As the zoom level approaches that threshold, say when you're at 75% of max zoom, further zooming ALSO tilts the camera into alignment with the "ground."
So, for example, at 80% zoom you start to get height perspective of buildings relative to your PC's. Walls are a little more clearly defined and you get less clipping of the exterior surfaces of the walls. At 90% zoom, you're in a chase cam, a meter or two behind and above the PC's head. Like GTA/RDR style default view. Then at 95% zoome, you're just behind the PC's head with a third person view of their perspective. at 100%, you're in first person.
From there, the ability to orient the camera per PC and "pin" a default camera position for each would be an amazing addition. Even without adding any of the other stuff I mentioned. And of course, all of the default positions I'm calling for should be able to be bound to a hotkey, including any custom camera positions.