The BSIL API is remote procedure call style (RPC), rather than RESTful. However, it's data model IS RESTful. So even though each call that operates on an Account requires a fully populated Account object, it will only do something with a small subset of the data you pass in. Unfortunately, it's not clear which portion. In order to fully create an Account, we make 6 calls to BSIL. What's more, the data returned is inconsistently populated. So we'll often have to re-load a value after updating it to get the complete new state of the object.
If BusiBee just mapped the various BSIL calls straight through, then all of this complexity would wind up littered throughout UCP. We wanted to be able to just update the values on an account, and tell BusiBee to update it, and trust that whatever needed to happen, would indeed happen.
Basically: Make the methods simple and consistent