When forcing freelook via script the current camera setup is listening on either engine input in the form of CameraIsFreeLook() from the HumanInputController or the script variable m_bForceFreeLook
For the function UpdateLRAngle this is correctly taken into account by checking for
if (m_pInput.CameraIsFreeLook() || m_bForceFreeLook)
On the function in question -> UpdateUDAngle this is unfortunately not the case. It is just checking for
if( m_pInput.CameraIsFreeLook() )
So you can not modify it via script using the existing function interface. I think / I hope this was simply a mistake and can be fixed by using the same condition as in UpdateLRAngle
Since ForceFreelook( bool ) is not actively used by vanilla scripts in the current DayZ version I think there is minimal to no risk to apply this change.