The problem I have with workspace.addObjects() is the function doesn't add any of the input objects to the idf if one or more of the objects is invalid. This makes debugging very difficult because all I know is that there is at least one problem with one of the objects in the input array.
https://openstudio-sdk-documentation.s3.amazonaws.com/cpp/OpenStudio-2.0.3-doc/utilities/html/classopenstudio_1_1_workspace.html#a1ce26a7d2ad612bc95782e1fb43fb9d7
Most recently, this was apparent when the RunPeriod object fields changed from the energyplus 8.9 to 9.0 version and many of my measures broke that would load external idf objects specifying the base building model.