So in a previous feedback it was outlined that camera decoupled requires the steer or bank flags as well to work (https://feedback.secondlife.com/scripting-bugs/p/llsetvehicleflags-vehicle-flag-camera-decoupled-does-not-work)
It was also mentioned that camera decoupled is sent in an object update message to the client.
However there is a bug that llSetVehicleFlags does not trigger a full object update message.
So, if you have an efficient script that minimises what it needs to set without triggering an object update and the client still thinks the object doesn't have camera decoupling enabled then the camera decoupling doesn't work!
The current hacky workaround is to use something that can force a full update, such as setting hover text.
The real issue is that setting or removing the camera decoupling flag should trigger the relevant network update to pass the information to the client.
I was frequently reproducing this issue on a vehicle I was working on trying to figure out what the issue was but it became reproducible once I knew the trick was related to triggering a full object update.