@animageofmine, currently there are no "exists" functions in the API. As you said, you must either query the list of objects and look for it in that response, or perform a get action against it and check for an exception. Either is a viable solution.
As for creating a pool with it's members in one call, the LocalLB::Pool::create_v2() method takes in an initial set of ip:port members for the pool creation.
For question 3, can you elaborate? All writes will change the running configuration. One thing to keep in mind is that they do not flush the changes to persistent storage on disk. That has to be done manually with the System::ConfigSync::save_configuration() method. We chose to remove this from each API call as the write overhead is fairly large and for scenarios with bulk operations, adding that overhead to every call made orchestration type workflows painfully long.
Hope this helps...
-Joe