I have the same expectation, that webservices ,SOAP or REST, should follow the same logic as the GUI does.
Especially regarding the "Dependent Attribute Control" definitions, there is a special Option which controls the behavior, when changing data "in the background", without a direct user interaction.
The Option is named "Status_Policy_Violations" .
Take a look at https://docops.ca.com/ca-service-management/14-1/en/administering/administering-ca-service-desk-manager/options-manager#OptionsManager-GeneralOptions
And check your NX.env for Variable @NX_STATUS_POLICY_VIOLATIONS
In my test system it is set to Warn, which "only" writes a stdlog message if the rules are breached. To enforce the the same behavior as in the GUI, it needs to be set to "Reject".
I hope this is the reason for your mismatch observation and helps.
Regards
...............Michael