Updating a deal via the API is restricted if a product is attached, but not in the UI

Performing an update on a deal via the API (i.e. PUT /deals/:deal_id) if the deal has a product associated will result in a bad request error, along with an error message that deals with an attached product cannot be updated. However, performing an update operation on the deal via the UI is allowed and is successful. What is the rationale for this restriction being placed on the API but not the web user interface?