No, there isn't. world_add
ends up calling a C routine BKE_rigidbody_create_world
that is not otherwise exposed through the bpy
API.
You would have to select a scene even if the C routine had a Python interface, because the rigid body world is attached to a specific scene, and the caller of the C routine would have to know which one.
If you wanted to add a rigid body world to a specific scene and didn't want to change the context, you could use a context override:
override = {
'scene' : bpy.data.scenes['Scene']
}
bpy.ops.rigidbody.world_add(override)
replacing 'Scene' with the name of the scene you wanted to add the world to.
3.2 Update
Context overrides are deprecated in Blender 3.2 and are scheduled to be removed in Blender 3.3 The replacement is temp_override
. The manual has examples of how to use the new function.